From 4cc50fc1900e197127ea5c5bf4f99603d2828d64 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Sat, 18 Feb 2023 12:26:44 +0100 Subject: [PATCH 1/4] Ajout Haubert d'Oniros --- packs/sorts-oniros.db | 1 + 1 file changed, 1 insertion(+) diff --git a/packs/sorts-oniros.db b/packs/sorts-oniros.db index 6c59ddfc..c029533b 100644 --- a/packs/sorts-oniros.db +++ b/packs/sorts-oniros.db @@ -19,6 +19,7 @@ {"_id":"IBYW3gYDDHuAYykj","name":"Eau en bois","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-oniros.IBYW3gYDDHuAYykj"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_oniros.webp","effects":[],"system":{"description":"

Le principe de la Transmutation Élémentale est de transformer un élément en un autre, par exemple le métal en bois, l’air en feu. Il n’existe de transmutation que pour les six premiers éléments. La matière dont sont composées les créatures, mortes ou vivantes, n’est jamais transmuée, y compris l’air contenu dans les poumons. Il existe 26 transmutations élémentales ; chacune est un sort à part entière, obéissant en tout point aux règles des sorts de zone.

\n

La transmutation a lieu dans la zone paramétrée et ciblée par le haut-rêvant. Tout ce qui appartient à l’élément impliqué est transmué instantanément sans discrimination. On ne peut pas faire de choix. Tant que dure la zone, tout nouvel objet appartenant à l’élément impliqué qui pénètre dans la zone, est immédiatement transmué à son tour. La zone peut fort bien être lancée sur un lieu où l’élément impliqué n’existe pas, par exemple Terre en Eau à 5 m du sol. Rien ne se produira au premier abord, mais toute pierre lancée dans la zone sera instantanément liquéfiée pour retomber sous forme de pluie.

\n

Tout objet transmué, situé ou entrant dans la zone, adopte aussitôt la forme que lui permet le nouvel élément. On peut obtenir de gracieuses torsades avec du feu transmué en bois ou en métal. La transmutation est définitive, même si l’objet sort de la zone. À la fin de la zone (HN), l’effet cesse d’opérer, mais la matière transmuée le demeure définitivement sans recouvrer non plus son élément d’origine.

\n

Quand une créature vivante se retrouve dans une zone de Transmutation Élémentale, bien que la matière dont elle est composée ne soit pas affectée en elle-même, elle subit l’effet naturel et normal du nouvel élément qui l’entoure, sans jet de résistance. Une créature prise dans une zone d’Air en Feu se retrouve dans un brasier qui la brûle, une créature nageant prise dans une zone d’Eau en Bois se retrouve enkystée dans un bloc de bois, etc.

\n

L’élément Eau correspondant à tous les liquides d’origine non animale, réellement aqueux ou non, c’est tout le liquide qui est transmué et non pas uniquement ses molécules de H2O, y compris tout ce qui peut y être dissout (sels, cristaux). L’eau d’un végétal (sève, jus d’un fruit) appartient à l’élément Bois, qui est celui du végétal, tant qu’il est contenu dans ce dernier. L’humus appartient intégralement à l’élément Terre, même s’il est composé en grande partie de matière végétale (Bois) non encore décomposée.

\n

Éléments d'arrivée

\n

X élément en Air : Pratiquement, l’ancien élément disparaît dans un courant d’air. L’air d’arrivée est toujours frais et pur.

\n

X élément en Terre : L’élément d’arrivée est une roche friable et fragile comme de la craie.

\n

X élément en Eau : L’eau nouvellement créée se comporte naturellement, attirée par la pesanteur : elle pleut, coule, cherche à s’infiltrer. Elle a la pureté de l’eau distillée.

\n

X élément en Feu : L’ancien élément devenu Feu n’est plus que flammes. Toutefois, pour que ces nouvelles flammes continuent à brûler, il leur faut un combustible, faute de quoi elles s’éteignent. Quand c’est l’Air qui est transmué en Feu, celui-ci demeure même sans combustible, car l’Air entourant la zone la comble immédiatement, devenant Feu à son tour. Le résultat est une sphère en permanente ignition. Il en va de même pour l’eau au centre d’une rivière par exemple.

\n

X élément en Bois : Le bois d’arrivée est un bois de qualité médiocre, du genre sapin, mais sec, sans aucune sève ni résine, combustible ou façonnable.

\n

X élément en Métal : Il ne s’agit toujours que des deux métaux les plus inertes : fer ou plomb (tirer à pile ou face). Le fer de transmutation n’est ni de l’acier ni du fer forgé, c’est du fer natif, mou et sans dureté. Un forgeron peut néanmoins le travailler.

\n

Objets magiques

\n

À mi-chemin entre les créatures et la matière inerte, les objets magiques ont droit à un jet de résistance pour ne pas être impliqués dans une transmutation. C’est un JR spécial, r0, où la protection magique du matériau est prise en guise de points de rêve (voir Résistance).

","descriptionmj":"","draconic":"Voie d'Oniros","duree":"HN","JR":"Aucun","cible":"","difficulte":"-4","portée":"","caseTMR":"foret","caseTMRspeciale":"","ptreve":"2","xp":0,"bonuscase":"","isrituel":false,"coutseuil":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259472742,"modifiedTime":1667260037972,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"_id":"Ixsf3r1AxJGcP7xp","name":"Invulnérabilité chromatique au violet","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-oniros.Ixsf3r1AxJGcP7xp"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_oniros.webp","effects":[],"system":{"description":"

Les sorts d’Invulnérabilité Chromatique ne peuvent être recherchés/synthétisés qu’en ayant compris le @Item[5YK6q2KuKArkvDWy]{Le Principe Drachromatique} (voir Les grimoires, p218).

\n

Cette zone mobile personnelle, obéissant à toutes les règles des ZMP (sauf la durée), confère une protection supplémentaire (c’est-à-dire en plus de l’armure réellement portée), sous réserve que la cible soit à 75 % ou plus d’une même couleur, rouge, orange, etc. Plusieurs nuances d’une même couleur sont possibles, comme par exemple le tigre vert, nuancé de deux tons de verts, ou un Cyan, considéré bleu à 90 %. Les vêtements peuvent servir dans ce but, tous teintés d’un même coloris.

\n

La protection varie de +2 à +8, selon la couleur : elle est égale aux points de rêve nécessaires. Par exemple, la protection chromatique au rouge r2 confère une protection de +2 ; celle au bleu r6 une protection de +6.

\n

Ce sort est incompatible avec le rituel @Item[qW1vAyoqrvxG0tDn]{Haubert d'Oniros (rituel)}.

\n

Vêtements et équipement peuvent avoir été colorés dans la teinte voulue par une Transmutation Chromatique (voir page suivante) mais pas par une illusion d’Hypnos. Ces illusions ne s’appliquent en effet qu’aux yeux des spectateurs, et la magie d’Oniros, quant à elle, n’en est pas dupe.

\n

Aucune zone d’Invulnérabilité Chromatique n’a jamais pu être envisagée pour le blanc, le gris, le noir, non plus que pour les bruns, beiges, ocres, fauves, etc.

\n

Il existe six types d’Invulnérabilité Chromatique, chacun étant un sort distinct.

","descriptionmj":"","draconic":"Voie d'Oniros","duree":"HN","JR":"r-8 et coût 1r","cible":"","difficulte":"-14","portée":"","caseTMR":"marais","caseTMRspeciale":"","ptreve":"8","xp":0,"bonuscase":"","isrituel":false,"coutseuil":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259472742,"modifiedTime":1667260037973,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"_id":"JHMC46WLlEsJ4YsQ","name":"Terre en bois","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-oniros.JHMC46WLlEsJ4YsQ"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_oniros.webp","effects":[],"system":{"description":"

Le principe de la Transmutation Élémentale est de transformer un élément en un autre, par exemple le métal en bois, l’air en feu. Il n’existe de transmutation que pour les six premiers éléments. La matière dont sont composées les créatures, mortes ou vivantes, n’est jamais transmuée, y compris l’air contenu dans les poumons. Il existe 26 transmutations élémentales ; chacune est un sort à part entière, obéissant en tout point aux règles des sorts de zone.

\n

La transmutation a lieu dans la zone paramétrée et ciblée par le haut-rêvant. Tout ce qui appartient à l’élément impliqué est transmué instantanément sans discrimination. On ne peut pas faire de choix. Tant que dure la zone, tout nouvel objet appartenant à l’élément impliqué qui pénètre dans la zone, est immédiatement transmué à son tour. La zone peut fort bien être lancée sur un lieu où l’élément impliqué n’existe pas, par exemple Terre en Eau à 5 m du sol. Rien ne se produira au premier abord, mais toute pierre lancée dans la zone sera instantanément liquéfiée pour retomber sous forme de pluie.

\n

Tout objet transmué, situé ou entrant dans la zone, adopte aussitôt la forme que lui permet le nouvel élément. On peut obtenir de gracieuses torsades avec du feu transmué en bois ou en métal. La transmutation est définitive, même si l’objet sort de la zone. À la fin de la zone (HN), l’effet cesse d’opérer, mais la matière transmuée le demeure définitivement sans recouvrer non plus son élément d’origine.

\n

Quand une créature vivante se retrouve dans une zone de Transmutation Élémentale, bien que la matière dont elle est composée ne soit pas affectée en elle-même, elle subit l’effet naturel et normal du nouvel élément qui l’entoure, sans jet de résistance. Une créature prise dans une zone d’Air en Feu se retrouve dans un brasier qui la brûle, une créature nageant prise dans une zone d’Eau en Bois se retrouve enkystée dans un bloc de bois, etc.

\n

L’élément Eau correspondant à tous les liquides d’origine non animale, réellement aqueux ou non, c’est tout le liquide qui est transmué et non pas uniquement ses molécules de H2O, y compris tout ce qui peut y être dissout (sels, cristaux). L’eau d’un végétal (sève, jus d’un fruit) appartient à l’élément Bois, qui est celui du végétal, tant qu’il est contenu dans ce dernier. L’humus appartient intégralement à l’élément Terre, même s’il est composé en grande partie de matière végétale (Bois) non encore décomposée.

\n

Éléments d'arrivée

\n

X élément en Air : Pratiquement, l’ancien élément disparaît dans un courant d’air. L’air d’arrivée est toujours frais et pur.

\n

X élément en Terre : L’élément d’arrivée est une roche friable et fragile comme de la craie.

\n

X élément en Eau : L’eau nouvellement créée se comporte naturellement, attirée par la pesanteur : elle pleut, coule, cherche à s’infiltrer. Elle a la pureté de l’eau distillée.

\n

X élément en Feu : L’ancien élément devenu Feu n’est plus que flammes. Toutefois, pour que ces nouvelles flammes continuent à brûler, il leur faut un combustible, faute de quoi elles s’éteignent. Quand c’est l’Air qui est transmué en Feu, celui-ci demeure même sans combustible, car l’Air entourant la zone la comble immédiatement, devenant Feu à son tour. Le résultat est une sphère en permanente ignition. Il en va de même pour l’eau au centre d’une rivière par exemple.

\n

X élément en Bois : Le bois d’arrivée est un bois de qualité médiocre, du genre sapin, mais sec, sans aucune sève ni résine, combustible ou façonnable.

\n

X élément en Métal : Il ne s’agit toujours que des deux métaux les plus inertes : fer ou plomb (tirer à pile ou face). Le fer de transmutation n’est ni de l’acier ni du fer forgé, c’est du fer natif, mou et sans dureté. Un forgeron peut néanmoins le travailler.

\n

Objets magiques

\n

À mi-chemin entre les créatures et la matière inerte, les objets magiques ont droit à un jet de résistance pour ne pas être impliqués dans une transmutation. C’est un JR spécial, r0, où la protection magique du matériau est prise en guise de points de rêve (voir Résistance).

","descriptionmj":"","draconic":"Voie d'Oniros","duree":"HN","JR":"Aucun","cible":"","difficulte":"-4","portée":"","caseTMR":"plaines","caseTMRspeciale":"","ptreve":"2","xp":0,"bonuscase":"","isrituel":false,"coutseuil":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259472742,"modifiedTime":1667260037974,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} +{"name":"Haubert d'Oniros","type":"sort","img":"systems/foundryvtt-reve-de-dragon/icons/competence_oniros.webp","system":{"description":"

Le rituel de Haubert d’Oniros confère à la cible une protection de 5 points comme un haubert de mailles. Il ne s’ajoute pas toutefois à la protection préexistante, et si cette dernière est déjà de 5 ou plus, il n’a aucun effet. En cas de combat, la présence du Haubert d’Oniros n’empêche pas que l’amure véritable soit endommagée par les coups. Le Haubert d’Oniros n’a ni encombrement ni malus armure. Sa protection de 5 n’est pas diminuée face aux flèches ou aux carreaux.

Le Haubert d’Oniros est la seule zone mobile personnelle qui est un rituel, et ne peut donc être mis en réserve ni attribué à une écaille d’activité. Il obéit par ailleurs à toutes les règles des ZMP (sauf la durée)

","descriptionmj":"","draconic":"Voie d'Oniros","duree":"HN","JR":"r-8, coût 1r","cible":"","difficulte":"-8","portée":"","caseTMR":"fleuve","caseTMRspeciale":"","ptreve":"7","xp":0,"bonuscase":"","isrituel":true,"coutseuil":0,"portee":"Toucher"},"effects":[],"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"flags":{"core":{"sourceId":"Item.Zf4SEkl1IBb37HKI"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.18","coreVersion":"10.291","createdTime":1676718845845,"modifiedTime":1676719508440,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"K9lspVNJAJmCAQHB"} {"_id":"MXK7iZSys3eg2deO","name":"Ténèbres","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-oniros.MXK7iZSys3eg2deO"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_oniros.webp","effects":[],"system":{"description":"

La zone ainsi créée s’emplit de ténèbres totales où rien ne peut être visuellement perçu, aussi bien dans la zone elle-même qu’à l’extérieur de celle-ci pour les créatures situées dedans. Si un feu est allumé, il dégage de la chaleur, brûle, mais sans aucune lumière. De l’extérieur, la zone n’est pas détectable. Une zone de Ténèbres en plein jour ne se remarque pas plus de l’extérieur qu’une zone de Lumière en pleine nuit.

","descriptionmj":"","draconic":"Voie d'Oniros","duree":"HN","JR":"Aucun","cible":"","difficulte":"-4","portée":"","caseTMR":"cite","caseTMRspeciale":"","ptreve":"3","xp":0,"bonuscase":"","isrituel":false,"coutseuil":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259472742,"modifiedTime":1667260037974,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"_id":"NROb4w04t4jPPBYr","name":"Illusion animale","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-oniros.NROb4w04t4jPPBYr"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_oniros.webp","effects":[],"system":{"description":"

Permet de peupler illusoirement la zone d’un animal de son choix. L’animal semble vivant, mobile, sonore, mais l’illusion ne peut quitter la zone. Le haut-rêvant ne téléguide pas les mouvements de l’illusion, celle-ci fonctionne de façon autonome, le comportement de l’animal étant celui, standard et moyen, de l’espèce. L’illusion n’est perceptible que de l’extérieur, elle se dissipe instantanément pour tout personnage qui pénètre dans la zone. On ne peut créer que l’illusion d’un animal que l’on a déjà réellement vu dans sa vie.

","descriptionmj":"","draconic":"Voie d'Oniros","duree":"HN","JR":"Aucun","cible":"","difficulte":"-4","portée":"","caseTMR":"foret","caseTMRspeciale":"","ptreve":"4","xp":0,"bonuscase":"","isrituel":false,"coutseuil":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259472742,"modifiedTime":1667260037973,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"_id":"NZ1fYmy3dVs4NcFd","name":"Terre en eau","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-oniros.NZ1fYmy3dVs4NcFd"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_oniros.webp","effects":[],"system":{"description":"

Le principe de la Transmutation Élémentale est de transformer un élément en un autre, par exemple le métal en bois, l’air en feu. Il n’existe de transmutation que pour les six premiers éléments. La matière dont sont composées les créatures, mortes ou vivantes, n’est jamais transmuée, y compris l’air contenu dans les poumons. Il existe 26 transmutations élémentales ; chacune est un sort à part entière, obéissant en tout point aux règles des sorts de zone.

\n

La transmutation a lieu dans la zone paramétrée et ciblée par le haut-rêvant. Tout ce qui appartient à l’élément impliqué est transmué instantanément sans discrimination. On ne peut pas faire de choix. Tant que dure la zone, tout nouvel objet appartenant à l’élément impliqué qui pénètre dans la zone, est immédiatement transmué à son tour. La zone peut fort bien être lancée sur un lieu où l’élément impliqué n’existe pas, par exemple Terre en Eau à 5 m du sol. Rien ne se produira au premier abord, mais toute pierre lancée dans la zone sera instantanément liquéfiée pour retomber sous forme de pluie.

\n

Tout objet transmué, situé ou entrant dans la zone, adopte aussitôt la forme que lui permet le nouvel élément. On peut obtenir de gracieuses torsades avec du feu transmué en bois ou en métal. La transmutation est définitive, même si l’objet sort de la zone. À la fin de la zone (HN), l’effet cesse d’opérer, mais la matière transmuée le demeure définitivement sans recouvrer non plus son élément d’origine.

\n

Quand une créature vivante se retrouve dans une zone de Transmutation Élémentale, bien que la matière dont elle est composée ne soit pas affectée en elle-même, elle subit l’effet naturel et normal du nouvel élément qui l’entoure, sans jet de résistance. Une créature prise dans une zone d’Air en Feu se retrouve dans un brasier qui la brûle, une créature nageant prise dans une zone d’Eau en Bois se retrouve enkystée dans un bloc de bois, etc.

\n

L’élément Eau correspondant à tous les liquides d’origine non animale, réellement aqueux ou non, c’est tout le liquide qui est transmué et non pas uniquement ses molécules de H2O, y compris tout ce qui peut y être dissout (sels, cristaux). L’eau d’un végétal (sève, jus d’un fruit) appartient à l’élément Bois, qui est celui du végétal, tant qu’il est contenu dans ce dernier. L’humus appartient intégralement à l’élément Terre, même s’il est composé en grande partie de matière végétale (Bois) non encore décomposée.

\n

Éléments d'arrivée

\n

X élément en Air : Pratiquement, l’ancien élément disparaît dans un courant d’air. L’air d’arrivée est toujours frais et pur.

\n

X élément en Terre : L’élément d’arrivée est une roche friable et fragile comme de la craie.

\n

X élément en Eau : L’eau nouvellement créée se comporte naturellement, attirée par la pesanteur : elle pleut, coule, cherche à s’infiltrer. Elle a la pureté de l’eau distillée.

\n

X élément en Feu : L’ancien élément devenu Feu n’est plus que flammes. Toutefois, pour que ces nouvelles flammes continuent à brûler, il leur faut un combustible, faute de quoi elles s’éteignent. Quand c’est l’Air qui est transmué en Feu, celui-ci demeure même sans combustible, car l’Air entourant la zone la comble immédiatement, devenant Feu à son tour. Le résultat est une sphère en permanente ignition. Il en va de même pour l’eau au centre d’une rivière par exemple.

\n

X élément en Bois : Le bois d’arrivée est un bois de qualité médiocre, du genre sapin, mais sec, sans aucune sève ni résine, combustible ou façonnable.

\n

X élément en Métal : Il ne s’agit toujours que des deux métaux les plus inertes : fer ou plomb (tirer à pile ou face). Le fer de transmutation n’est ni de l’acier ni du fer forgé, c’est du fer natif, mou et sans dureté. Un forgeron peut néanmoins le travailler.

\n

Objets magiques

\n

À mi-chemin entre les créatures et la matière inerte, les objets magiques ont droit à un jet de résistance pour ne pas être impliqués dans une transmutation. C’est un JR spécial, r0, où la protection magique du matériau est prise en guise de points de rêve (voir Résistance).

","descriptionmj":"","draconic":"Voie d'Oniros","duree":"HN","JR":"Aucun","cible":"","difficulte":"-6","portée":"","caseTMR":"foret","caseTMRspeciale":"","ptreve":"4","xp":0,"bonuscase":"","isrituel":false,"coutseuil":0},"ownership":{"default":0,"jOzRscDxoXZWpGS6":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259472742,"modifiedTime":1667260037974,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} -- 2.35.3 From f97345e407d3dcc4f2cbaaca15b705f0bfa9584d Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 24 Feb 2023 00:33:49 +0100 Subject: [PATCH 2/4] =?UTF-8?q?Fix:=20recherche=20avec=20droits=20limit?= =?UTF-8?q?=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/actor/base-actor-sheet.js | 42 ++++++++++++++++---------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/module/actor/base-actor-sheet.js b/module/actor/base-actor-sheet.js index 1412238a..9ac21339 100644 --- a/module/actor/base-actor-sheet.js +++ b/module/actor/base-actor-sheet.js @@ -123,21 +123,27 @@ export class RdDBaseActorSheet extends ActorSheet { .map(t => Misc.arrayOrEmpty(itemTypes[t])) .reduce((a, b) => a.concat(b), []) .sort(Misc.ascending(it => it.name)); - } - - /* -------------------------------------------- */ /** @override */ - activateListeners(html) { - super.activateListeners(html); - this.html = html; - - this.html.find('.conteneur-name a').click(async event => { - RdDUtility.toggleAfficheContenu(this.getItemId(event)); - this.render(true); - }); - this.html.find('.item-edit').click(async event => this.getItem(event)?.sheet.render(true)) - this.html.find('.item-montrer').click(async event => this.getItem(event)?.postItemToChat()); - this.html.find('.actor-montrer').click(async event => this.actor.postActorToChat()); - + } + + /* -------------------------------------------- */ /** @override */ + activateListeners(html) { + super.activateListeners(html); + this.html = html; + + this.html.find('.conteneur-name a').click(async event => { + RdDUtility.toggleAfficheContenu(this.getItemId(event)); + this.render(true); + }); + this.html.find('.item-edit').click(async event => this.getItem(event)?.sheet.render(true)) + this.html.find('.item-montrer').click(async event => this.getItem(event)?.postItemToChat()); + this.html.find('.actor-montrer').click(async event => this.actor.postActorToChat()); + this.html.find('.recherche') + .each((index, field) => { + this._rechercheSelectArea(field); + }) + .keyup(async event => this._rechercherKeyup(event)) + .change(async event => this._rechercherKeyup(event)); + this.html.find('.recherche').prop( "disabled", false ); // Everything below here is only needed if the sheet is editable if (!this.options.editable) return; @@ -160,12 +166,6 @@ export class RdDBaseActorSheet extends ActorSheet { this.html.find('.monnaie-moins').click(async event => { this.actor.monnaieIncDec(this.getItemId(event), -1); }); - this.html.find('.recherche') - .each((index, field) => { - this._rechercheSelectArea(field); - }) - .keyup(async event => this._rechercherKeyup(event)) - .change(async event => this._rechercherKeyup(event)); } _rechercherKeyup(event) { -- 2.35.3 From 3c3be7409de3087082561a6e65f6108d1bc062f0 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 24 Feb 2023 00:38:14 +0100 Subject: [PATCH 3/4] =?UTF-8?q?Fix:=20probl=C3=A8me=20de=20nombre=20d'util?= =?UTF-8?q?isations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/rdd-combat.js | 66 ++++++++++++-------------------------------- module/rdd-main.js | 1 - 2 files changed, 17 insertions(+), 50 deletions(-) diff --git a/module/rdd-combat.js b/module/rdd-combat.js index 9aedd422..904384d6 100644 --- a/module/rdd-combat.js +++ b/module/rdd-combat.js @@ -39,35 +39,31 @@ export class RdDCombatManager extends Combat { static init() { /* -------------------------------------------- */ - Hooks.on("getCombatTrackerEntryContext", (html, options) => { - RdDCombatManager.pushInitiativeOptions(html, options); - }); - Hooks.on("preDeleteCombat", (combat, html, id) => { - combat.onPreDeleteCombat() - }); - } - - /* -------------------------------------------- */ - cleanItemUse() { - for (let turn of this.turns) { - turn.actor.resetItemUse() - } + Hooks.on("getCombatTrackerEntryContext", (html, options) => { RdDCombatManager.pushInitiativeOptions(html, options); }); + Hooks.on("updateCombat", (combat, change, options, userId) => { RdDCombat.onUpdateCombat(combat, change, options, userId) }); + Hooks.on("preDeleteCombat", (combat, html, id) => { combat.onPreDeleteCombat() }); } /* -------------------------------------------- */ async nextRound() { - this.cleanItemUse(); await this.finDeRound(); return await super.nextRound(); } /* -------------------------------------------- */ async onPreDeleteCombat() { - await this.finDeRound({ terminer: true }); + if (Misc.isUniqueConnectedGM()) { + await this.finDeRound({ terminer: true }); + ChatUtility.removeChatMessageContaining(`
`) + game.messages.filter(m => ChatUtility.getMessageData(m, 'attacker-roll') != undefined && ChatUtility.getMessageData(m, 'defender-roll') != undefined) + .forEach(it => it.delete()); + } } /* -------------------------------------------- */ async finDeRound(options = { terminer: false }) { + this.turns.forEach(turn => turn.actor.resetItemUse()); + for (let combatant of this.combatants) { if (combatant.actor) { await combatant.actor.finDeRound(options); @@ -144,9 +140,8 @@ export class RdDCombatManager extends Combat { } /* -------------------------------------------- */ - static calculInitiative(niveau, caracValue, bonusEcaille = 0) { - let base = niveau + Math.floor(caracValue / 2); - base += bonusEcaille; + static calculInitiative(niveau, caracValue, bonus = 0) { + let base = niveau + Math.floor(caracValue / 2) + bonus; return "1d6" + (base >= 0 ? "+" : "") + base; } @@ -420,18 +415,11 @@ export class RdDCombatManager extends Combat { /* -------------------------------------------- */ export class RdDCombat { - static init() { - Hooks.on("updateCombat", (combat, change, options, userId) => { RdDCombat.onUpdateCombat(combat, change, options, userId) }); - Hooks.on("preDeleteCombat", (combat, options, userId) => { RdDCombat.onPreDeleteCombat(combat, options, userId); }); - } - /* -------------------------------------------- */ static onSocketMessage(sockmsg) { switch (sockmsg.msg) { - case "msg_encaisser": - return RdDCombat.onMsgEncaisser(sockmsg.data); - case "msg_defense": - return RdDCombat.onMsgDefense(sockmsg.data); + case "msg_encaisser": return RdDCombat.onMsgEncaisser(sockmsg.data); + case "msg_defense": return RdDCombat.onMsgDefense(sockmsg.data); } } @@ -442,16 +430,6 @@ export class RdDCombat { } } - /* -------------------------------------------- */ - static onPreDeleteCombat(combat, options, userId) { - if (Misc.isUniqueConnectedGM()) { - combat.cleanItemUse(); - ChatUtility.removeChatMessageContaining(`
`) - game.messages.filter(m => ChatUtility.getMessageData(m, 'attacker-roll') != undefined && ChatUtility.getMessageData(m, 'defender-roll') != undefined) - .forEach(it => it.delete()); - } - } - /* -------------------------------------------- */ static combatNouveauTour(combat) { if (Misc.isUniqueConnectedGM()) { @@ -756,15 +734,6 @@ export class RdDCombat { /* -------------------------------------------- */ async attaque(competence, arme) { - // const nonIncarnee = this.defender.isEntite([ENTITE_NONINCARNE]) - // const blurette = this.defender.isEntite([ENTITE_BLURETTE]) - // if (nonIncarnee || blurette) { - // ChatMessage.create( { - // content: `La cible est ${nonIncarnee ? 'non incarnée' : 'une blurette'}. - // Il est impossible de l'atteindre.`, - // whisper: ChatMessage.getWhisperRecipients("GM")}) - // } - if (!await this.attacker.accorder(this.defender, 'avant-attaque')) { return; } @@ -970,9 +939,8 @@ export class RdDCombat { /* -------------------------------------------- */ _filterArmesParade(defender, competence) { let items = defender.items.filter(it => RdDItemArme.isArmeUtilisable(it) || RdDItemCompetenceCreature.isCompetenceParade(it)) - for (let item of items) { - item.system.nbUsage = defender.getItemUse(item.id); // Ajout du # d'utilisation ce round - } + items.forEach(item => item.system.nbUsage = defender.getItemUse(item.id)); // Ajout du # d'utilisation ce round + switch (competence.system.categorie) { case 'tir': case 'lancer': diff --git a/module/rdd-main.js b/module/rdd-main.js index 1ca85977..f475b64d 100644 --- a/module/rdd-main.js +++ b/module/rdd-main.js @@ -180,7 +180,6 @@ export class SystemReveDeDragon { RdDUtility.init(); RdDDice.init(); RdDCommands.init(); - RdDCombat.init(); RdDCombatManager.init(); RdDTokenHud.init(); RdDBaseActor.init(); -- 2.35.3 From c6f0aaeba088dc2c9bbc8e389f68c9d1c6ce1b42 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 24 Feb 2023 00:50:06 +0100 Subject: [PATCH 4/4] Version 10.6.19 - La cerise de Pralinor --- system.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system.json b/system.json index cb06707d..3b395684 100644 --- a/system.json +++ b/system.json @@ -1,8 +1,8 @@ { "id": "foundryvtt-reve-de-dragon", "title": "Rêve de Dragon", - "version": "10.6.18", - "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.6.18.zip", + "version": "10.6.19", + "download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-10.6.19.zip", "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v10/system.json", "compatibility": { "minimum": "10", -- 2.35.3