Compare commits
23 Commits
Author | SHA1 | Date | |
---|---|---|---|
1d63cd54fe | |||
15e6127e02 | |||
afd8c2ac80 | |||
18de904849 | |||
cb48c960c2 | |||
bd082248d9 | |||
df9df90ccb | |||
0456221cf7 | |||
583b4ff003 | |||
b4ac906802 | |||
395c7a4cc3 | |||
27bc07f64a | |||
2f3ec7bab0 | |||
8d39a0526f | |||
f83548b91e | |||
90d17a3477 | |||
fb15f3eb38 | |||
4df0eab574 | |||
c8d589f0d2 | |||
d7470836a5 | |||
817fa8e62a | |||
0fe4f64343 | |||
d6b5b0a550 |
124
changelog.md
124
changelog.md
@@ -1,4 +1,34 @@
|
||||
# 13.0
|
||||
## 13.0.7 - Sous le signe d'Illysis
|
||||
- Fix Foundry V13
|
||||
- les tooltips des ajustements sont correctement visible
|
||||
- correction des affichages des signes d'heures dans la fenêtre d'astrologie
|
||||
|
||||
- en cas d'appel au moral lorsqu'une double significative est requise,
|
||||
le moral est perdu si la réussite est insuffisante
|
||||
- transformation du niveau des musiques/danses/chants/recettes de cuisine en valeur numérique
|
||||
- les effets draconiques sur une case inconnue (A0) ne causent plus de problèmes dans les TMRs
|
||||
|
||||
## 13.0.6 - Le bandage d'Illysis
|
||||
|
||||
- Les soins sont de nouveau disponibles depuis les tokens
|
||||
- Correction des boutons de la feuille simplifiée
|
||||
- On peut de nouveau acheter dans les commerces
|
||||
|
||||
## 13.0.5
|
||||
|
||||
- Export CSV/Scriptarium à nouveau disponible dans les menus d'acteurs
|
||||
|
||||
## 13.0.4 - Le long discours d'Illysis
|
||||
|
||||
- On peut de nouveau modifier les descriptions
|
||||
- ne pas proposer l'export csv par défaut
|
||||
- Correction de la macro "Jet quelconque"
|
||||
- Correction de la ligne 'rêve actuel' ajoutée dans les caracs
|
||||
- Corrections d'affichage
|
||||
- boutons de l'horloge
|
||||
- boutons de déplacement des TMR
|
||||
- modification des messages de tchat
|
||||
|
||||
## 13.0.3 - La dernière auberge d'Illysis
|
||||
|
||||
@@ -15,17 +45,21 @@
|
||||
- Migration vers la version 13 de Foundry
|
||||
|
||||
# 12.0
|
||||
|
||||
## 12.0.50 - Le sommeil d'Astrobazzarh
|
||||
|
||||
- Le don de double rêve n'interrompt plus le sommeil toutes les heures
|
||||
- la perte de fatigue à la descente des TMR est visible immédiatement
|
||||
|
||||
## 12.0.49 - La deuxième lame d'Astrobazzarh
|
||||
|
||||
- Corrections
|
||||
- les défenses particulières sont correctement affichées
|
||||
- les vieux boucliers (sans catégorie de parade car créés il y a longtemps) peuvent parer...
|
||||
- Les attaques à distance n'ont pas de difficulté libre
|
||||
|
||||
## 12.0.48 - La chèvre d'Astrobazzarh
|
||||
|
||||
- le Bandersnatch a une protection de 10
|
||||
- la consistance chèvre est maintenant possible dans les recettes
|
||||
alchimiques (et toutes les consistances avec accents)
|
||||
@@ -34,10 +68,12 @@
|
||||
- Correction: les réussites particulières fonctionnent avec les caractéristiques dérivées
|
||||
|
||||
## 12.0.47
|
||||
|
||||
- Correction sur les mise à jour en cascade -
|
||||
- Correction sur le force rendering après un changement de competence
|
||||
|
||||
## 12.0.46 - Le double demi d'Astrobazzarh
|
||||
|
||||
- correction des raffraîchissement lors du sommeil qui empêchait de dormir
|
||||
plusieurs heures
|
||||
- Si la fatigue n'est pas utilisée, les rounds dans les TMR font perdre de l'endurance (au lieu d'en gagner)
|
||||
@@ -64,18 +100,22 @@
|
||||
- Correction des jets `@roll[vue/-2]` qui tentaient de chercher une compétence -2 (à cause des armes à 1/2 mains)
|
||||
|
||||
## 12.0.41 - La loupe d'Astrobazzarh
|
||||
|
||||
- On peut de nouveau effectuer des tirages cachés
|
||||
- Le stress transformé est bien diminué lorsqu'on met le stress dans une compétence
|
||||
|
||||
## 12.0.40 - Les mains d'Astrobazzarh
|
||||
|
||||
- correction des attaques particulières en combat
|
||||
- correction de message sur les min/max liés aux modificateurs de races (s'applique uniquement sur la taille)
|
||||
|
||||
## 12.0.39 - Les mains d'Astrobazzarh
|
||||
|
||||
- les armes à 1 ou 2 mains fonctionnent dans les liens de jets de dés
|
||||
- commande `/jet` pour poster une demande de jet de dés
|
||||
|
||||
## 12.0.38 - Les prévisions d'Astrobazzarh
|
||||
|
||||
- Correction de modifications de personnages qui ne s'affichaient pas:
|
||||
- changements d'endurance/vie/fatigue, transformé, ...
|
||||
- Migration des compétences "Ecriture" en "Écriture" dans les tâches, livres, oeuvres et méditations
|
||||
@@ -85,12 +125,14 @@
|
||||
- utilisation de l'extension hbs pour tous les fichiers handlebars
|
||||
|
||||
## 12.0.37 - Les enchantements d'Astrobazzarh
|
||||
|
||||
- les potions ont un état, seules les potions liquides sont enchantables
|
||||
- les lancements de sorts du jour sont conservés jusqu'à chateau dormant
|
||||
- lorsqu'un joueur souhaite enchanter une potion, les sorts d'enchantements/purification/permanence doivent avoir été lancés auparavant
|
||||
- on peut enchanter des gemmes exactement comme des potions
|
||||
|
||||
## 12.0.36 - L'alchimie d'Astrobazzarh
|
||||
|
||||
- Nouveautés
|
||||
- ajout d'un bouton pour enchanter les potions
|
||||
- standardisation des boutons d'actions sur les items
|
||||
@@ -105,9 +147,11 @@
|
||||
- Corrections de descriptions pour proposer les jet de dés
|
||||
|
||||
## 12.0.35 - La Solution d'Astrobazzarh
|
||||
|
||||
- Fix problème d'initialisation des feuilles d'items
|
||||
|
||||
## 12.0.34 - la tête d'Astrobazzarh
|
||||
|
||||
- support de liens "jets de dés"
|
||||
- on peut ajouter des liens "jet de dés" dans les journaux, descriptions, notes, maladresses, ...
|
||||
- avec la syntaxe `@roll[...]` on peut ajouter le lien vers:
|
||||
@@ -122,28 +166,35 @@
|
||||
- gestion des blocs secrets dans les descriptions
|
||||
|
||||
## 12.0.33 - la vieillesse d'Astrobazzarh
|
||||
|
||||
- retour de l'expérience pour les joueurs
|
||||
- suppression du message "Pas de caractéristique" sur les jets d'odorat-goût
|
||||
|
||||
## 12.0.32 - les rêveries d'Astrobazzarh
|
||||
|
||||
- Ajout des Items Race pour gérer les ajustements liés aux races
|
||||
|
||||
## 12.0.31 - le mausolée d'Astrobazzarh
|
||||
|
||||
- Correction: les automatisation de combat jouer-MJ fonctionnentde nouveau
|
||||
|
||||
## 12.0.30 - le cauchemar d'Astrobazzarh
|
||||
|
||||
- calcul automatique du niveau des entités selon leur rêve
|
||||
- la description des créatures venimeuses contient un lien vers leur venin
|
||||
- Correction: les messages de combats ne marchaient plus (Changement combiné Foundry + rêve de Dragon)
|
||||
|
||||
## 12.0.29 - L'indexation d'Astrobazzarh
|
||||
|
||||
- les liens dans la descriptions des sorts pointent vers les sorts du compendium
|
||||
- la description du chrasme contient le lien vers son venin plutôt qu'un tableau
|
||||
|
||||
## 12.0.28 - Les réserves d'Astrobazzarh
|
||||
|
||||
- possibilité de mettre en réserve depuis un sort connu
|
||||
|
||||
## 12.0.27 - Les vêtements d'Astrobazzarh
|
||||
|
||||
- Ajout de la liste des armures dans l'onglet caractéristiques
|
||||
- Ajout d'une option pour choisir une carte des TMR alternatives
|
||||
- Le Gardien peut créer des sorts en réserve parmi les sorts d'un personnage
|
||||
@@ -164,12 +215,14 @@
|
||||
- les modèles de personnages non joueurs sont non-liés par défaut
|
||||
|
||||
## 12.0.26 - Astrobazzarh le Haut-rêvant
|
||||
|
||||
- bouton pour le don de haut-rêve en un clic
|
||||
- les compétences de draconic ne sont plus précédées de "Voie de"
|
||||
- migration des compétences & compendiums
|
||||
- Correction feuille simplifiée qui ne s'affichait pas en cas de sort variable
|
||||
|
||||
## 12.0.24 - Les ajustements d'Astrobazzarh
|
||||
|
||||
- amélioration
|
||||
- meilleure gestion des noms des voies de draconic
|
||||
- affichage du détail des sorts avec le nom de voie, 'court', la difficulté, le coût
|
||||
@@ -179,6 +232,7 @@
|
||||
- on peut maintenant saisir et supprimer les bonus de cases de manière intuitive
|
||||
|
||||
## 12.0.23 - La bibliothèque d'Astrobazzarh
|
||||
|
||||
- corrections mineures
|
||||
- meilleure gestion de la parade des armes naturelles
|
||||
- cas de "User lacks permission to update" pour les blessures et les StatusEffects
|
||||
@@ -194,19 +248,23 @@
|
||||
- dans les compendiums, les compétences Écriture et Épée ont une majuscule accentuée. Les Épée dans le compendium d'équipements référence le nom de compétence accentué.
|
||||
|
||||
## 12.0.21 - La nomination d'Astrobazzarh
|
||||
|
||||
- Les noms pour les messages dans le tchat sont maintenant ceux des tokens plutôt que ceux des acteurs
|
||||
- Fix: le choix des effets dans les options s'affiche correctement
|
||||
|
||||
## 12.0.20 - Le tableau d'Astrobazzarh
|
||||
|
||||
- Ecran d'accueil officiel Scriptarium
|
||||
|
||||
## 12.0.19 - La témérité d'Astrobazzarh
|
||||
|
||||
- Fix
|
||||
- les défenses des créatures sont correctement filtrées
|
||||
- le lancer d'initiative pour tous les personnages/PNJs fonctionne correctement
|
||||
- les lieux et commerces n'ont pas d'initiative
|
||||
|
||||
## 12.0.18 - A la barbe d'Astrobazzarh
|
||||
|
||||
- Améliorations sur la feuille de PNJ simplifiée
|
||||
- Ajout du portrait
|
||||
- Ajout du corps à corps
|
||||
@@ -223,11 +281,13 @@
|
||||
- Ajout d'un indicateur pour les armes de parade nécessitant une significative
|
||||
|
||||
## 12.0.16 - Le secret d'Astrobazzarh
|
||||
|
||||
- Fix: les jets envoyés messages uniquement au MJ ne sont plus envoyés à tous les autres joueurs (et dupliqués)
|
||||
- Les noms affichés dans les automatisations de combat sont maintenant ceux des tokens plutôt que ceux des acteurs
|
||||
- Ajout d'une option pour la localisation des blessures
|
||||
|
||||
## 12.0.15 - Le messager d'Astrobazzarh
|
||||
|
||||
- Correction des faces de dés personalisés dice-so-nice
|
||||
- Les messages de maladies ne sont plus publics
|
||||
- Les messages privés dans les TMR sont aussi envoyés au GM
|
||||
@@ -235,6 +295,7 @@
|
||||
- Amélioration du rendu des tables de compendiums (commande /table)
|
||||
|
||||
## 12.0.14 - Les légions d'Astrobazzarh
|
||||
|
||||
- Feuille de PNJ:
|
||||
- boutons standard (encaissement, ...)
|
||||
- boutons pour ajuster les compteurs
|
||||
@@ -243,15 +304,18 @@
|
||||
- gestion des armes
|
||||
|
||||
## 12.0.13 - La Chance d'Astrobazzarh
|
||||
|
||||
- Fix: jets de caractéristiques
|
||||
|
||||
## 12.0.12 - L'étalage d'Astrobazzarh
|
||||
|
||||
- Fix: On peut de nouveau vendre des items sans propriétaire, depuis les compendiums ou depuis l'onglet des Objets
|
||||
- Début de Feuille PNJ au format des encarts Scriptarium
|
||||
- support des jets de caractéristiques
|
||||
- support des jets de compétences
|
||||
|
||||
## 12.0.11 - Le scriptorium d'Astrobazzarh
|
||||
|
||||
- ajout d'un bouton pour générer les éléments de description d'un personnage
|
||||
- ajout du logo en background dans la liste des systèmes Foundry
|
||||
- ajout d'un champ pour le métier
|
||||
@@ -260,10 +324,12 @@
|
||||
- export de l'esquive avec armure et sans armure
|
||||
|
||||
## 12.0.9 - 12.0.10 - Le scriptorium d'Astrobazzarh
|
||||
|
||||
- corrections de l'export scriptarium
|
||||
- ajout d'une fonction avancée pour un exporter "scriptarium" des personnages
|
||||
|
||||
## 12.0.8 - La quincaillerie d'Astrobazzarh
|
||||
|
||||
- le propriétaire est indiqué dans les feuilles d'équipements/compétences/...
|
||||
- Ecaille d'efficacité
|
||||
- l'écaille d'efficacité est prise en compte même si on n'utilise pas le ciblage en combat
|
||||
@@ -273,6 +339,7 @@
|
||||
- le tooltip de l'initiative affiche correctement l'initiative
|
||||
|
||||
## 12.0.7 - La propriété d'Astrobazzarh
|
||||
|
||||
- correction des opérations faites à la création d'un Item:
|
||||
- la durée des queues/rencontres/souffles
|
||||
- les effets draconiques d'un souffle/queue
|
||||
@@ -287,6 +354,7 @@
|
||||
- la commande /voyage affiche maintenant les compétences liées au terrain
|
||||
|
||||
## 12.0.6 - Le bazar d'Astrobazzarh
|
||||
|
||||
- Corrections de l'inventaire en bazar:
|
||||
- un problème pouvait survenir en déplaçant les objets
|
||||
l'inventaire, qui fait qu'un conteneur se retrouve récursivement dans son
|
||||
@@ -301,22 +369,26 @@
|
||||
- Fix: restaurer la compatibilité Foundry 11
|
||||
|
||||
## 12.0.5 - Les mauvais jours d'Astrobazzarh
|
||||
|
||||
- Fix: on peut de nouveau ouvrir l'édition de calendrier
|
||||
- Fix: on ne peut plus ouvrir plusieurs fenêtres de lancer de sort
|
||||
- Fix: Failed to execute 'getComputedStyle' on 'Window'
|
||||
|
||||
## 12.0.4 - La plaie d'Astrobazzarh
|
||||
|
||||
- **Support V12**
|
||||
- Fix: les boutons d'encaissement dans le tchat fonctionnent de nouveau
|
||||
- Fix warnings sur "Die" et AudioHelper
|
||||
|
||||
## 12.0.3 - L'hémorragie d'Astrobazzarh
|
||||
|
||||
- **Support V12**
|
||||
- On peut de nouveau ouvrir un acteur blessé après redémarrage du monde
|
||||
- On peut de nouveau ouvrir les Items avec une rareté par environnement
|
||||
- Le choix de ne plus afficher les demandes de suppression est bien pris en compte
|
||||
|
||||
## 12.0.2 - Les pluies d'Astrobazzarh
|
||||
|
||||
- **Support V12**
|
||||
- correction des actions techniques déleguées au MJ qui bloquaient les fenêtre de lancer de dés des joueurs (et plein d'autres)
|
||||
- la fenêtre de calendrier s'ouvre correctement
|
||||
@@ -331,13 +403,16 @@
|
||||
- correction d'erreurs intempestives 'User ... lacks permission to update ...'
|
||||
|
||||
# 11.2
|
||||
|
||||
## 11.2.21 - Le questionnement d'Akarlikarlikar
|
||||
|
||||
- Une confirmation spécifique est demandée pour monter dans les terres médianes en cas de rencontre en attente
|
||||
- L'expérience en caractéristique sur les jets de chance et rêve actuels est mise dans la caractéristique correspondante
|
||||
- Les effets s'appliquent correctement sur les créatures
|
||||
- La date et l'heure (draconiques) sont affichées dans les messages du tchat
|
||||
|
||||
## 11.2.20 - Le soulagement d'Akarlikarlikar
|
||||
|
||||
- L'option "ajout de la difficulté d'attaque à l'encaissement" est affichée comme un modificateur d'encaissement
|
||||
- Les options d'encaissement alternatives fonctionnent avec la validation de l'encaissement par le gardien
|
||||
- La fenêtre d'astrologie du gardien affiche toutes les heures lues par un personnage
|
||||
@@ -347,12 +422,15 @@
|
||||
- Les messages de récupération de rêve en cas de Rêve de Dragon sont clarifiés
|
||||
|
||||
## 11.2.19 - Les hémorroïdes d'Akarlikarlikar
|
||||
|
||||
- La validation des jets d'encaissement par le Gardien fonctionne de nouveau
|
||||
|
||||
## 11.2.18 - Le bourrichon d'Akarlikarlikar
|
||||
|
||||
- Les différentes listes de la feuille de personnage ont maintenant le bouton pour envoyer dans le tchat
|
||||
|
||||
## 11.2.17 - Le cache-oeil d'Akarlikarlikar
|
||||
|
||||
- Le titre des fenêtre d'objet affiche de nouveau le type traduit
|
||||
- Les tooltips des boutons edit/delete sont maintenant en Français
|
||||
- La case à cocher "Cacher les points de tâches" fonctionne de nouveau
|
||||
@@ -361,35 +439,43 @@
|
||||
- La fenêtre des TMRs ne devrait plus afficher une zone noire au lieu de la carte.
|
||||
|
||||
## 11.2.16 - Le Tri d'Akarlikarlikar
|
||||
|
||||
- Tri alphabétique des items dans la fenêtre de création
|
||||
- Mise à jour comptage de monde
|
||||
|
||||
## 11.2.15 - La Table d'Akarlikarlikar
|
||||
|
||||
- Tirage automatique de la foce d'une rencontre (via la commande /tmrr)
|
||||
- Ajout de boutons pour ajouter des blessures "complètes" (ie avec perte d'endurance/vie)
|
||||
|
||||
## 11.2.14 - Les petits pas d'Akarlikarlikar
|
||||
|
||||
- Correction sur la gestion de la surprise
|
||||
- Ordre des messages sur les cases humides
|
||||
|
||||
## 11.2.13 - Les cent pas d'Akarlikarlikar
|
||||
|
||||
- Ajout de la commande /voyage pour gérer la fatigue de marche des voyageurs
|
||||
|
||||
## 11.2.12 - Le somnifère d'Akarlikarlikar
|
||||
|
||||
- Fix: les potions enchantées n'empêchent plus de finir correctement Château Dormant
|
||||
|
||||
## 11.2.11 - Le miroir d'Akarlikarlikar
|
||||
|
||||
- Changement des images de compétence de créatures morsure/pinces pour être dans le thème
|
||||
- Suppression de la bordure autour des portraits d'acteurs, remplacés par un légèr éclaircissement du fond
|
||||
- Fix: le refoulement ajoute correctement un souffle et revient à 0 en cas d'échec
|
||||
|
||||
## 11.2.10 - Les expériences d'Akarlikarlikar
|
||||
|
||||
- En cas d'expérience des caractéristiques dérivées,
|
||||
- si plusieurs caractéristiques pourraient recevoir l'expérience, une fenêtre demande au joueur
|
||||
- si une seule caractéristique peut recevoir de l'expérience, c'est attribué automatiquement
|
||||
- Si la force est au maximum pour la taille personnage, on ne peut plus gagner d'expérience
|
||||
|
||||
## 11.2.9 - La barbe d'Akarlikarlikar
|
||||
|
||||
- Amélioration des textes de tooltips
|
||||
- Les tooltips sont plus dans le thème de couleur du système Rêve de Dragon
|
||||
- Ajouts d'icones pour les attaque/initiative/soins dans les raccourcis sur les tokens (HUD)
|
||||
@@ -401,19 +487,23 @@
|
||||
- Changement de l'icône d'état d'empoignade pour suivre les couleurs des autres icônes d'état
|
||||
|
||||
## 11.2.8 - L'éclairage d'Akarlikarlikar
|
||||
|
||||
- l'ajustement de la lumière jour/nuit s'étale sur moins de temps (vaisseau et Lyre)
|
||||
- les nouveaux tooltips ne masquent plus l'information d'expérience
|
||||
- les jets de dés pour maîtriser les rencontres fonctionnent de nouveau
|
||||
|
||||
## 11.2.7 - Les explications d'Akarlikarlikar
|
||||
|
||||
- Ajout de tooltips sur la plupart des boutons, liens clickables, objets, tâches, ...
|
||||
- Fix: on peut de nouveau regarder l'inventaire avec les droits limités/observateur
|
||||
|
||||
## 11.2.6 - Les réveils difficiles d'Akarlikarlikar
|
||||
|
||||
- Les changements de points de Cœur sont temporaires jusqu'à fin Château Dormant
|
||||
- Fix: tous les petits fixes (feuille qui s'ouvre plus, compagnons animaux, potions qui bloquent Château Dormant, ...)
|
||||
|
||||
## 11.2.2 - Les tendres moments d'Akarlikarlikar
|
||||
|
||||
- On peut maintenant avoir des points de Cœur pour des suivants/compagnons
|
||||
- diminuer les points de coeurs fait perdre du moral
|
||||
- on peut proposer un tendre moment
|
||||
@@ -432,11 +522,14 @@
|
||||
ne bloquent plus les jets de dés
|
||||
|
||||
## v11.2.1 - La technique d'Akarlikarlikar
|
||||
|
||||
- On peut créer des armes pour Corps à corps et Esquive. Barreaux de chaise, armes improvisées, techniques d'art martiaux, pas de côté pour faire trébucher l'adversaire... A vous de voir comment imaginer de nouvelles "armes".
|
||||
- Les armes avec une résistance de 0 ne peuvent pas être utilisées, une image et un rappel indiquent qu'elles sont cassées
|
||||
|
||||
Vu qu'elles ne peuvent pas être utilisées, permet de savoir pourquoi
|
||||
|
||||
## v11.2.0 - Les Terres médianes d'Akarlikarlikar
|
||||
|
||||
- Les TMRs sont redimensionables
|
||||
- Nouveaux graphismes plus lisibles dans les TMRs
|
||||
- Nouveau code couleur des icônes dans les TMR:
|
||||
@@ -450,12 +543,15 @@ Vu qu'elles ne peuvent pas être utilisées, permet de savoir pourquoi
|
||||
- Fix: Les jets d'encaissement forcés par le gardien à un résultat inférieur à 11 ne peuvent plus donner un deuxième d10 négatif
|
||||
|
||||
# v11.1
|
||||
|
||||
## v11.1.6 - Les dissections de Werther de Zloth
|
||||
|
||||
- Fix: on peut de nouveau donner des compétences aux créatures
|
||||
- Fix: le délai de guérison d'une blessure rétrogradée est correctement appliqué
|
||||
- Fix: l'encaissement à valider par le MJ fonctionne de nouveau
|
||||
|
||||
## v11.1.5 - Werther de Zloth l'Onirique
|
||||
|
||||
- Fixes:
|
||||
- la demande de défense ne marchait plus
|
||||
- la tête réserve extensible crée bien une case de réserve extensible (à modifier)
|
||||
@@ -470,6 +566,7 @@ Vu qu'elles ne peuvent pas être utilisées, permet de savoir pourquoi
|
||||
- pas de jets de vie pour les morts
|
||||
|
||||
## v11.1.4 - Werther de Zloth l'Onirique
|
||||
|
||||
- Ajout du facteur de significative à côté du pourcentage dans le résultat des jets de dés pour rappeler que le pourcentage n'est pas diviasé
|
||||
- Fix: dans les TMRs, les tooltips affichent bien les informations de tous les effets sur la case
|
||||
- Fix: la fatigue et l'éthylisme sont de nouveau pris en compte dans le calcul de l'éthylisme
|
||||
@@ -479,15 +576,18 @@ Vu qu'elles ne peuvent pas être utilisées, permet de savoir pourquoi
|
||||
- Esthétique: ne pas afficher "+0" pour les ajustements de jets/encaissement
|
||||
|
||||
## v11.1.2 - Les vertèbres de Werther de Zloth
|
||||
|
||||
- Fix: les jets d'encaissement fonctionnent de nouveau normalement
|
||||
- Macro "Mon personnage" permettant au joueur d'accéder à sa feuille de personnage depuis la barre de macros
|
||||
|
||||
## v11.1.1 - Les fumebols de Werther de Zloth
|
||||
|
||||
- Fix: on peut de nouveau afficher les vues détaillées
|
||||
- Fix: on peut ouvrir les sacs et contenants portés par les véhicules et créatures
|
||||
- Fix: cuisiner du gibier prend maintenant bien les proportaions en compte
|
||||
|
||||
## v11.1.0 - Les choix de Werther de Zloth
|
||||
|
||||
- Les options suivantes peuvent être désactivées:
|
||||
- La transformation de stress à Château Dormant
|
||||
- La récuperation de chance à Château Dormant
|
||||
@@ -505,7 +605,9 @@ Vu qu'elles ne peuvent pas être utilisées, permet de savoir pourquoi
|
||||
- en cas de charge, les particulières sont toujours en force (p125)
|
||||
|
||||
# v11.0
|
||||
|
||||
## v11.0.28 - les fractures de Khrachtchoum
|
||||
|
||||
- La gravité de la blessure est affichée dans le résumé de l'encaissement
|
||||
- Lors du changement d'acteur pendant le round
|
||||
- le message annonçant le joueur dont c'est le tour ne contient plus d'informations de santé
|
||||
@@ -517,12 +619,14 @@ Vu qu'elles ne peuvent pas être utilisées, permet de savoir pourquoi
|
||||
- le moral est indiqué avant l'icone d'appel au moral
|
||||
|
||||
## v11.0.27 - Khrachtchoum le méticuleux
|
||||
|
||||
- le tooltip dans les TMR reste visible si on ne bouge pas la souris
|
||||
- le surencombrement n'affecte QUE les actions physiques
|
||||
- on peut de nouveau fabriquer une potion depuis la fenêtre d'édition de l'herbe
|
||||
- si les TMR sont minimisées alors qu'une action est requise, elles sont bien réaffichées lorsque l'action est faite
|
||||
|
||||
## v11.0.26 - le crépuscule de Khrachtchoum
|
||||
|
||||
- gestion correcte des TMRs
|
||||
- les TMRs ne sont jamais minimisées (par le système) quand le haut-rêvant est en demi-rêve
|
||||
- lorsqu'une fenêtre liée aux demi-rêve est affichée, cliquer sur les TMRs n'a pas d'effet
|
||||
@@ -541,45 +645,57 @@ Vu qu'elles ne peuvent pas être utilisées, permet de savoir pourquoi
|
||||
- les jets de compétences d'attaque des créatures fonctionnent de nouveau
|
||||
|
||||
## v11.0.25 - la vision du rêve de Khrachtchoum
|
||||
|
||||
- Les TMRs restent affichées tant que le Haut-rêvant est en demi-rêve
|
||||
|
||||
## v11.0.24 - les couleurs de Khrachtchoum
|
||||
|
||||
- nouvelle carte des TMRs
|
||||
|
||||
## v11.0.23 - la lumière de Khrachtchoum
|
||||
|
||||
- ajustement automatique de la luminosité selon l'heure pour les scènes:
|
||||
- avec une vision des tokens (sinon: ce n'est pas une scène de carte pour tokens)
|
||||
- avec illumination globale (correspondant à une illumination extérieure)
|
||||
- quand lampe "allumée" dans la fenêtre du calendrier
|
||||
- avec une vision des tokens (sinon: ce n'est pas une scène de carte pour tokens)
|
||||
- avec illumination globale (correspondant à une illumination extérieure)
|
||||
- quand lampe "allumée" dans la fenêtre du calendrier
|
||||
|
||||
## v11.0.22 - les automatismes de Khrachtchoum le Problémeux
|
||||
|
||||
- Macro pour attaquer avec les compétences de créatures
|
||||
|
||||
## v11.0.20
|
||||
|
||||
- Macro pour attaquer avec les armes des personnages
|
||||
|
||||
## v11.0.17
|
||||
|
||||
- Fix: les actions de commerce ne s'appliquait pas bien aux personnages des tokens non liés
|
||||
|
||||
## v11.0.15 - L'apprentissage de Khrachtchoum
|
||||
|
||||
- Fix: l'expérience ne s'appliquait plus sur certaines réussites particulières (régression depuis la 11.0.7)
|
||||
|
||||
## v11.0.14 - Les pincettes de Khrachtchoum le Problémeux
|
||||
|
||||
- Correction du calcul de la place restante lors de l'ajout dans un conteneur
|
||||
|
||||
## v11.0.13 - La multiplication de l'eau de Khrachtchoum le Problémeux
|
||||
|
||||
- Correction de la vente depuis un commerce ayant des quantités illimitées
|
||||
|
||||
## v11.0.12 - Les poids de la mesure de Khrachtchoum le Problémeux
|
||||
|
||||
- Correction des malus de surencombrement
|
||||
- Le malus armure est correctement affiché dans l'onglet des caractéristiques
|
||||
- Correction d'orthographe et amélioration des messages des oeuvres d'art
|
||||
|
||||
## v11.0.11 - Les bleus de Khrachtchoum le Problémeux
|
||||
|
||||
- si le gardien configure le sommeil, les joueurs sont notifiés que chateau dormant vient de passer
|
||||
- possibilité de créer des armes et des compétences de créatures non-mortelles.
|
||||
|
||||
## v11.0.10 - Les Songes de Khrachtchoum le Problémeux
|
||||
|
||||
- on peut de nouveau se déplacer dans les TMRs d'un clic sur la case à atteindre
|
||||
- Lire un livre depuis l'inventaire permet de nouveau de faire un jet de la tâche
|
||||
créée au lieu de créer toujours une nouvelle tâche
|
||||
@@ -590,12 +706,14 @@ Vu qu'elles ne peuvent pas être utilisées, permet de savoir pourquoi
|
||||
les heures dormies sont déduites des heures restant à dormir
|
||||
|
||||
## v11.0.9 - Les Souvenirs de Khrachtchoum le Problémeux
|
||||
|
||||
- mode de saisie de l'archétype en vue détaillée
|
||||
- création une nouvelle incarnation depuis l'archétype
|
||||
- réorganisation de la fenêtre de sélection des règles optionnelles
|
||||
- correction de l'affichage du type dans les fenêtres d'objets
|
||||
|
||||
## v11.0.8 - la poigne de Sémolosse
|
||||
|
||||
- lien vers le changelog
|
||||
- organisation des compendiums du système
|
||||
- correction de l'empoignade
|
||||
|
@@ -132,8 +132,8 @@ select,
|
||||
/*--------------------------------------------------------------------------*/
|
||||
/* Control, Tool, hotbar & navigation */
|
||||
/* Tooltip container */
|
||||
/* Tooltip text */
|
||||
/* Show the tooltip text when you mouse over the tooltip container */
|
||||
/* html Tooltips html*/
|
||||
/* Dropdown Content (Hidden by Default) */
|
||||
/* Change the background color of the dropdown button when the dropdown content is shown */
|
||||
/* Show the dropdown menu on hover */
|
||||
@@ -420,8 +420,9 @@ select,
|
||||
.system-foundryvtt-reve-de-dragon .window-header {
|
||||
background: rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .application .window-content,
|
||||
.system-foundryvtt-reve-de-dragon .window-app.sheet .window-content {
|
||||
margin: 0;
|
||||
margin: 0.2rem;
|
||||
padding: 0;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon section.window-content div.dialog-buttons {
|
||||
@@ -856,6 +857,7 @@ select,
|
||||
max-width: 1.5em;
|
||||
max-height: 1.5em;
|
||||
border-width: 0;
|
||||
display: inline;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .dimmed {
|
||||
opacity: 50%;
|
||||
@@ -874,13 +876,40 @@ select,
|
||||
padding: 0.2em;
|
||||
border-width: 0;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .small-button-direction {
|
||||
.system-foundryvtt-reve-de-dragon .grid-move-tmr {
|
||||
display: grid;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .move-tmr-topleft {
|
||||
grid-column: 2/2;
|
||||
grid-row: 2/4;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .move-tmr-top {
|
||||
grid-column: 3/3;
|
||||
grid-row: 1/3;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .move-tmr-topright {
|
||||
grid-column: 4/4;
|
||||
grid-row: 2/4;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .move-tmr-bottomleft {
|
||||
grid-column: 2/2;
|
||||
grid-row: 4/6;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .move-tmr-bottom {
|
||||
grid-column: 3/3;
|
||||
grid-row: 5/7;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .move-tmr-bottomright {
|
||||
grid-column: 4/4;
|
||||
grid-row: 4/6;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .tmr-move {
|
||||
max-height: 32px;
|
||||
max-width: 32px;
|
||||
border: 0;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon :is(.button-img,.button-effect-img,.small-button-direction):hover {
|
||||
.system-foundryvtt-reve-de-dragon :is(.button-img,.button-effect-img,.tmr-move):hover {
|
||||
color: var(--color-controls-hover);
|
||||
border: 1px solid var(--color-control-border-hover);
|
||||
text-shadow: 1px 0px 0px #ff6600;
|
||||
@@ -985,13 +1014,13 @@ select,
|
||||
margin-inline: 0.1rem;
|
||||
margin-block: 0.1rem;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon form.application.sheet.fvtt-rdd fieldset :is(label, input) {
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet fieldset :is(label, input) {
|
||||
font-family: CaslonAntique;
|
||||
text-align: justify;
|
||||
font-size: 1rem;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon form.application.sheet.fvtt-rdd div.form-group {
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet div.form-group {
|
||||
clear: both;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
@@ -999,14 +1028,15 @@ select,
|
||||
margin: 0.1rem 0;
|
||||
align-items: center;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon form.application.sheet.fvtt-rdd .editor.prosemirror {
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet .editor.prosemirror {
|
||||
height: fit-content;
|
||||
min-height: 5rem;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon form.application.sheet.fvtt-rdd prose-mirror.prosemirror .editor-container {
|
||||
.system-foundryvtt-reve-de-dragon .app.sheet .editor.prosemirror .editor-container {
|
||||
min-height: 5rem;
|
||||
height: fit-content;
|
||||
height: 8rem;
|
||||
margin: 0;
|
||||
flex: none;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .large-editor {
|
||||
border: 2;
|
||||
@@ -1155,12 +1185,12 @@ select,
|
||||
font-weight: bold;
|
||||
background-color: lightblue;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon div.placeholder-resolution span.table-proba-reussite {
|
||||
.system-foundryvtt-reve-de-dragon span.table-proba-reussite {
|
||||
font-size: 0.8rem;
|
||||
padding: 5px;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .poesie-extrait {
|
||||
font-size: 0.9rem;
|
||||
font-size: 0.8rem;
|
||||
font-style: italic;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .poesie-reference {
|
||||
@@ -1332,7 +1362,7 @@ select,
|
||||
width: 100%;
|
||||
max-width: 90%;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .window-app.sheet .window-content .tooltip:hover .tooltiptext {
|
||||
.system-foundryvtt-reve-de-dragon .window-app.sheet .window-content :is(.tooltip, .tooltip-overflow):hover .tooltiptext {
|
||||
top: 2rem;
|
||||
left: 2rem;
|
||||
margin: 0;
|
||||
@@ -1745,9 +1775,11 @@ select,
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
cursor: pointer;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .chat-message {
|
||||
background: rgba(220, 220, 210, 0.5);
|
||||
font-size: 1rem;
|
||||
.system-foundryvtt-reve-de-dragon .chat-message h4 {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .chat-message .message-content {
|
||||
text-align: justify;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .chat-message header.message-header .heure-rdd {
|
||||
font-size: 0.7rem;
|
||||
@@ -1757,6 +1789,9 @@ select,
|
||||
background: rgba(220, 220, 210, 0.75);
|
||||
border: 2px solid #545469;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .chat-message hr {
|
||||
margin: 0.2rem 0;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .chat-icon {
|
||||
border: 0;
|
||||
padding: 2px 6px 2px 2px;
|
||||
@@ -1771,6 +1806,13 @@ select,
|
||||
padding: 1px;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .actor-img-small {
|
||||
max-width: 1.5rem;
|
||||
max-height: 1.5rem;
|
||||
flex-grow: 0;
|
||||
margin-right: 0.2rem;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon #sidebar-tabs {
|
||||
flex: 0 0 28px;
|
||||
box-sizing: border-box;
|
||||
@@ -2169,8 +2211,6 @@ select,
|
||||
display: grid;
|
||||
background: hsl(0, 0%, 20%);
|
||||
color: hsla(0, 0%, 80%, 0.8);
|
||||
grid-row: 1;
|
||||
grid-column: 10;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-boutons-heure .calendar-btn:is(.calendar-lyre,.calendar-vaisseau) img {
|
||||
color: hsla(0, 0%, 100%, 0.5);
|
||||
@@ -2183,40 +2223,38 @@ select,
|
||||
.system-foundryvtt-reve-de-dragon .calendar-boutons-heure i {
|
||||
border: 1px solid rgba(0, 0, 0, 0);
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-boutons-heure i:hover {
|
||||
.system-foundryvtt-reve-de-dragon .calendar-boutons-heure a:hover {
|
||||
color: var(--color-controls-hover);
|
||||
border: 1px solid var(--color-control-border-hover);
|
||||
cursor: pointer;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-1min {
|
||||
grid-column: 1;
|
||||
grid-column: 1/1;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-5min {
|
||||
grid-column: 2;
|
||||
grid-column: 2/2;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-15min {
|
||||
grid-column: 3;
|
||||
grid-column: 3/3;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-30min {
|
||||
grid-column: 4;
|
||||
grid-column: 4/4;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-60min {
|
||||
grid-column: 5;
|
||||
grid-column: 5/5;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-1heure {
|
||||
grid-column: 6;
|
||||
grid-column: 6/6;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-lyre {
|
||||
grid-column: 7;
|
||||
grid-column: 7/8;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-vaisseau {
|
||||
grid-column: 8;
|
||||
grid-column: 9/10;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-set-datetime {
|
||||
grid-column: 9;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .calendar-astrologie {
|
||||
grid-column: 10;
|
||||
.system-foundryvtt-reve-de-dragon :is(.calendar-lyre,.calendar-vaisseau) {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon div.horloge-analogique {
|
||||
border: none;
|
||||
@@ -2251,11 +2289,26 @@ select,
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .tooltip-overflow {
|
||||
display: inline-block;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .tooltip-dotted {
|
||||
border-bottom: 1px dotted black;
|
||||
/* If you want dots under the hoverable text */
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .tooltip .tooltiptext {
|
||||
.system-foundryvtt-reve-de-dragon div.message-content span .tooltip-overflow {
|
||||
overflow: visible;
|
||||
position: absolute;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon div.message-content span .tooltip-overflow span {
|
||||
overflow: visible;
|
||||
position: relative;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow):hover .tooltiptext {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .tooltiptext {
|
||||
text-align: center;
|
||||
/* Position the tooltip text */
|
||||
position: absolute;
|
||||
@@ -2265,10 +2318,7 @@ select,
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .tooltip .left-competence {
|
||||
transform: translate(-100%, 0%);
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .tooltip .ttt-fatigue {
|
||||
.system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .ttt-fatigue {
|
||||
width: 360px;
|
||||
background: rgba(30, 25, 20, 0.9);
|
||||
border-image: url(../assets/ui/bg_control.webp) 21 repeat;
|
||||
@@ -2279,29 +2329,24 @@ select,
|
||||
font-size: 0.8rem;
|
||||
padding: 3px 0;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .tooltip .ttt-ajustements {
|
||||
width: 150px;
|
||||
.system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .ttt-ajustements {
|
||||
width: 10rem;
|
||||
background: var(--background-tooltip);
|
||||
border-radius: 6px;
|
||||
font-size: 0.9rem;
|
||||
padding: 3px 0;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .tooltip .ttt-titre {
|
||||
text-align: justify;
|
||||
width: 100%;
|
||||
top: 30px;
|
||||
background: var(--background-tooltip);
|
||||
border-radius: 6px;
|
||||
font-size: 0.9rem;
|
||||
padding: 3px;
|
||||
.system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .ttt-ajustements div:nth-child(odd) {
|
||||
background: var(--background-tooltip-alt);
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon aside#tooltip {
|
||||
max-width: 15rem;
|
||||
background: var(--background-tooltip);
|
||||
/*color: var(--color-text-dark-primary);*/
|
||||
color: rgba(100, 100, 50, 0.85);
|
||||
font-size: 1rem;
|
||||
font-size: 0.9rem;
|
||||
border-radius: 0.2rem;
|
||||
padding: 0.4rem;
|
||||
padding: 0.3rem;
|
||||
font-family: "CaslonAntique";
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon aside#tooltip span.reference {
|
||||
color: var(--color-tooltip);
|
||||
@@ -2310,17 +2355,6 @@ select,
|
||||
.system-foundryvtt-reve-de-dragon aside#tooltip .toolclip p.faint {
|
||||
color: var(--color-tooltip-faint);
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .tooltip :is(.ttt-xp,.ttt-levelup) {
|
||||
width: 250px;
|
||||
background: var(--background-tooltip) !important;
|
||||
border-radius: 6px;
|
||||
font-size: 0.9rem;
|
||||
padding: 3px 0;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .tooltip:hover .tooltiptext {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
.system-foundryvtt-reve-de-dragon .chat-card-button,
|
||||
.system-foundryvtt-reve-de-dragon .chat-card-button-pushed {
|
||||
border-radius: 0.2rem;
|
||||
|
@@ -80,5 +80,5 @@
|
||||
.sheet header.sheet-header .header-compteurs,
|
||||
.sheet header.sheet-header .flex-group-center.flex-fatigue,
|
||||
select, .item-checkbox, #sidebar, #players, #navigation #nav-toggle {
|
||||
font-family: "CaslonAntique"; /* For sheet parts; For nav and title */
|
||||
font-family: "CaslonAntique"; /* For sheet parts; For nav and title */
|
||||
}
|
||||
|
@@ -15,8 +15,9 @@
|
||||
background: rgba(0,0,0,0.75);
|
||||
}
|
||||
|
||||
.application .window-content,
|
||||
.window-app.sheet .window-content {
|
||||
margin: 0;
|
||||
margin: 0.2rem;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@@ -217,7 +218,6 @@
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
.grid-competence-archetype {
|
||||
display: grid;
|
||||
grid-column: span 3 / span 3;
|
||||
@@ -497,6 +497,7 @@
|
||||
max-width: 1.5em;
|
||||
max-height: 1.5em;
|
||||
border-width: 0;
|
||||
display: inline;
|
||||
}
|
||||
.dimmed {
|
||||
opacity: 50%;
|
||||
@@ -515,13 +516,21 @@
|
||||
padding: 0.2em;
|
||||
border-width: 0;
|
||||
}
|
||||
.small-button-direction {
|
||||
.grid-move-tmr { display: grid; }
|
||||
.move-tmr-topleft { grid-column: 2/2; grid-row: 2/4;}
|
||||
.move-tmr-top { grid-column: 3/3; grid-row: 1/3; }
|
||||
.move-tmr-topright { grid-column: 4/4; grid-row: 2/4; }
|
||||
.move-tmr-bottomleft { grid-column: 2/2; grid-row: 4/6; }
|
||||
.move-tmr-bottom { grid-column: 3/3; grid-row: 5/7; }
|
||||
.move-tmr-bottomright{ grid-column: 4/4; grid-row: 4/6; }
|
||||
|
||||
.tmr-move {
|
||||
max-height: 32px;
|
||||
max-width: 32px;
|
||||
border: 0;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
:is(.button-img,.button-effect-img,.small-button-direction):hover {
|
||||
:is(.button-img,.button-effect-img,.tmr-move):hover {
|
||||
color: var(--color-controls-hover);
|
||||
border: 1px solid var(--color-control-border-hover);
|
||||
text-shadow: 1px 0px 0px #ff6600;
|
||||
@@ -627,13 +636,14 @@
|
||||
margin-inline: 0.1rem;
|
||||
margin-block: 0.1rem;
|
||||
}
|
||||
form.application.sheet.fvtt-rdd fieldset :is(label, input) {
|
||||
.app.sheet fieldset :is(label, input) {
|
||||
font-family: CaslonAntique;
|
||||
text-align: justify;
|
||||
font-size: 1rem;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
form.application.sheet.fvtt-rdd div.form-group {
|
||||
|
||||
.app.sheet div.form-group {
|
||||
clear: both;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
@@ -641,15 +651,17 @@
|
||||
margin: 0.1rem 0;
|
||||
align-items: center;
|
||||
}
|
||||
form.application.sheet.fvtt-rdd .editor.prosemirror {
|
||||
.app.sheet .editor.prosemirror {
|
||||
height: fit-content;
|
||||
min-height: 5rem;
|
||||
}
|
||||
form.application.sheet.fvtt-rdd prose-mirror.prosemirror .editor-container {
|
||||
.app.sheet .editor.prosemirror .editor-container {
|
||||
min-height: 5rem;
|
||||
height: fit-content;
|
||||
height: 8rem;
|
||||
margin: 0;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.large-editor {
|
||||
border: 2;
|
||||
height: fit-content;
|
||||
@@ -798,6 +810,7 @@
|
||||
font-size: 0.8rem;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.placeholder-ajustements {
|
||||
flex-direction: column;
|
||||
}
|
||||
@@ -810,13 +823,13 @@
|
||||
background-color: lightblue;
|
||||
}
|
||||
|
||||
div.placeholder-resolution span.table-proba-reussite{
|
||||
span.table-proba-reussite{
|
||||
font-size: 0.8rem;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.poesie-extrait {
|
||||
font-size: 0.9rem;
|
||||
font-size: 0.8rem;
|
||||
font-style: italic;
|
||||
}
|
||||
.poesie-reference{
|
||||
@@ -1007,7 +1020,7 @@
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
.window-app.sheet .window-content .tooltip:hover .tooltiptext {
|
||||
.window-app.sheet .window-content :is(.tooltip, .tooltip-overflow):hover .tooltiptext {
|
||||
top: 2rem;
|
||||
left: 2rem;
|
||||
margin: 0;
|
||||
@@ -1458,11 +1471,13 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.chat-message {
|
||||
background: rgba(220,220,210,0.5);
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.chat-message h4 {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.chat-message .message-content {
|
||||
text-align: justify;
|
||||
}
|
||||
.chat-message header.message-header .heure-rdd {
|
||||
font-size: 0.7rem;
|
||||
flex-grow: 3;
|
||||
@@ -1472,6 +1487,11 @@
|
||||
background: rgba(220,220,210,0.75);
|
||||
border: 2px solid #545469;
|
||||
}
|
||||
|
||||
.chat-message hr {
|
||||
margin: 0.2rem 0;
|
||||
}
|
||||
|
||||
.chat-icon {
|
||||
border: 0;
|
||||
padding: 2px 6px 2px 2px;
|
||||
@@ -1487,6 +1507,14 @@
|
||||
vertical-align: text-top;
|
||||
}
|
||||
|
||||
.actor-img-small {
|
||||
max-width: 1.5rem;
|
||||
max-height: 1.5rem;
|
||||
flex-grow: 0;
|
||||
margin-right: 0.2rem;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
#sidebar-tabs {
|
||||
flex: 0 0 28px;
|
||||
box-sizing: border-box;
|
||||
@@ -1764,9 +1792,6 @@
|
||||
display: grid;
|
||||
background: hsla(0, 0%, 20%, 1);
|
||||
color: hsla(0, 0%, 80%, 0.8);
|
||||
|
||||
grid-row: 1;
|
||||
grid-column: 10;
|
||||
}
|
||||
|
||||
.calendar-boutons-heure .calendar-btn:is(.calendar-lyre,.calendar-vaisseau) img {
|
||||
@@ -1781,23 +1806,24 @@
|
||||
.calendar-boutons-heure i {
|
||||
border: 1px solid rgba(0, 0, 0, 0);
|
||||
}
|
||||
.calendar-boutons-heure i:hover {
|
||||
.calendar-boutons-heure a:hover {
|
||||
color: var(--color-controls-hover);
|
||||
border: 1px solid var(--color-control-border-hover);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.calendar-1min { grid-column: 1;}
|
||||
.calendar-5min { grid-column: 2;}
|
||||
.calendar-15min { grid-column: 3;}
|
||||
.calendar-30min { grid-column: 4;}
|
||||
.calendar-60min { grid-column: 5;}
|
||||
.calendar-1heure { grid-column: 6;}
|
||||
.calendar-lyre { grid-column: 7;}
|
||||
.calendar-vaisseau { grid-column: 8;}
|
||||
.calendar-set-datetime { grid-column: 9;}
|
||||
.calendar-astrologie { grid-column: 10;}
|
||||
|
||||
.calendar-1min { grid-column: 1/1; }
|
||||
.calendar-5min { grid-column: 2/2; }
|
||||
.calendar-15min { grid-column: 3/3; }
|
||||
.calendar-30min { grid-column: 4/4; }
|
||||
.calendar-60min { grid-column: 5/5; }
|
||||
.calendar-1heure { grid-column: 6/6; }
|
||||
.calendar-lyre { grid-column: 7/8; }
|
||||
.calendar-vaisseau { grid-column: 9/10; }
|
||||
:is(.calendar-lyre,.calendar-vaisseau) {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
div.horloge-analogique {
|
||||
border: none;
|
||||
margin: 0;
|
||||
@@ -1838,66 +1864,78 @@
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.tooltip-overflow {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.tooltip-dotted {
|
||||
border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
|
||||
}
|
||||
|
||||
/* Tooltip text */
|
||||
.tooltip .tooltiptext {
|
||||
text-align: center;
|
||||
/* Position the tooltip text */
|
||||
div.message-content span .tooltip-overflow {
|
||||
overflow: visible;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
/* Fade in tooltip */
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s;
|
||||
span {
|
||||
overflow: visible;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.tooltip .left-competence {
|
||||
transform: translate(-100%, 0%);
|
||||
/* Show the tooltip text when you mouse over the tooltip container */
|
||||
:is(.tooltip, .tooltip-overflow):hover {
|
||||
.tooltiptext {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
/* html Tooltips html*/
|
||||
:is(.tooltip, .tooltip-overflow){
|
||||
|
||||
.tooltiptext {
|
||||
text-align: center;
|
||||
/* Position the tooltip text */
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
/* Fade in tooltip */
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
|
||||
.tooltip .ttt-fatigue{
|
||||
width: 360px;
|
||||
.ttt-fatigue {
|
||||
width: 360px;
|
||||
|
||||
background: rgba(30, 25, 20, 0.9);
|
||||
border-image: url(../assets/ui/bg_control.webp) 21 repeat;
|
||||
border-image-slice: 6 6 6 6 fill;
|
||||
border-image-width: 6px 6px 6px 6px;
|
||||
border-image-outset: 0px 0px 0px 0px;
|
||||
border-radius: 0px;
|
||||
background: rgba(30, 25, 20, 0.9);
|
||||
border-image: url(../assets/ui/bg_control.webp) 21 repeat;
|
||||
border-image-slice: 6 6 6 6 fill;
|
||||
border-image-width: 6px 6px 6px 6px;
|
||||
border-image-outset: 0px 0px 0px 0px;
|
||||
border-radius: 0px;
|
||||
|
||||
font-size: 0.8rem;
|
||||
padding: 3px 0;
|
||||
}
|
||||
font-size: 0.8rem;
|
||||
padding: 3px 0;
|
||||
}
|
||||
|
||||
.tooltip .ttt-ajustements {
|
||||
width: 150px;
|
||||
background: var(--background-tooltip);
|
||||
border-radius: 6px;
|
||||
font-size: 0.9rem;
|
||||
padding: 3px 0;
|
||||
}
|
||||
|
||||
.tooltip .ttt-titre {
|
||||
text-align: justify;
|
||||
width: 100%;
|
||||
top: 30px;
|
||||
background: var(--background-tooltip);
|
||||
border-radius: 6px;
|
||||
font-size: 0.9rem;
|
||||
padding: 3px;
|
||||
.ttt-ajustements {
|
||||
width: 10rem;
|
||||
background: var(--background-tooltip);
|
||||
border-radius: 6px;
|
||||
font-size: 0.9rem;
|
||||
padding: 3px 0;
|
||||
div:nth-child(odd) {
|
||||
background: var(--background-tooltip-alt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aside#tooltip {
|
||||
max-width: 15rem;
|
||||
background: var(--background-tooltip);
|
||||
/*color: var(--color-text-dark-primary);*/
|
||||
color: rgba(100, 100, 50, 0.85);
|
||||
font-size: 1rem;
|
||||
font-size: 0.9rem;
|
||||
border-radius: 0.2rem;
|
||||
padding: 0.4rem;
|
||||
padding: 0.3rem;
|
||||
font-family: "CaslonAntique";
|
||||
}
|
||||
|
||||
aside#tooltip span.reference {
|
||||
@@ -1909,19 +1947,6 @@
|
||||
color: var(--color-tooltip-faint);
|
||||
}
|
||||
|
||||
.tooltip :is(.ttt-xp,.ttt-levelup) {
|
||||
width: 250px;
|
||||
background: var(--background-tooltip) !important;
|
||||
border-radius: 6px;
|
||||
font-size: 0.9rem;
|
||||
padding: 3px 0;
|
||||
}
|
||||
|
||||
/* Show the tooltip text when you mouse over the tooltip container */
|
||||
.tooltip:hover .tooltiptext {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.chat-card-button, .chat-card-button-pushed {
|
||||
border-radius: 0.2rem;
|
||||
|
@@ -1583,7 +1583,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
return
|
||||
}
|
||||
if (rollData.rolled.isEchec ||
|
||||
(rollData.ajustements.diviseurSignificative && (rollData.rolled.roll * rollData.ajustements.diviseurSignificative > rollData.score))) {
|
||||
(rollData.diviseurSignificative && (rollData.rolled.roll * rollData.diviseurSignificative > rollData.rolled.score))) {
|
||||
rollData.perteMoralEchec = rollData.moral <= -3 ? 'dissolution' : 'perte';
|
||||
rollData.moral = await this.moralIncDec(-1); /* L'appel au moral a échoué. Le personnage perd un point de moral */
|
||||
}
|
||||
|
@@ -341,6 +341,9 @@ export class RdDBaseActorReve extends RdDBaseActor {
|
||||
const selectedCaracName = ['apparence', 'perception', 'force', 'reve'].find(it => carac[it] != undefined)
|
||||
|
||||
await this.openRollDialog({
|
||||
name: 'jet-quelconque',
|
||||
label: 'Jet',
|
||||
template: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll.hbs',
|
||||
rollData: {
|
||||
alias: this.getAlias(),
|
||||
carac: carac,
|
||||
|
@@ -213,6 +213,7 @@ export class RdDBaseActor extends Actor {
|
||||
isCreatureEntite() { return this.isCreature() || this.isEntite() }
|
||||
isCreature() { return false }
|
||||
isEntite(typeentite = []) { return false }
|
||||
isHautRevant() { return false }
|
||||
isVehicule() { return false }
|
||||
isPersonnage() { return false }
|
||||
getItem(id, type = undefined) {
|
||||
|
@@ -12,14 +12,18 @@ export class ExportScriptarium {
|
||||
}
|
||||
|
||||
constructor() {
|
||||
Hooks.on("getActorDirectoryFolderContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) })
|
||||
Hooks.on("getActorDirectoryEntryContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) })
|
||||
//Hooks.on("getActorDirectoryFolderContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) })
|
||||
Hooks.on("getFolderContextOptions", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) })
|
||||
//Hooks.on("getActorDirectoryEntryContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) })
|
||||
Hooks.on("getActorContextOptions", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) })
|
||||
|
||||
}
|
||||
|
||||
onActorDirectoryMenu(actorDirectory, menus) {
|
||||
// DEBUG console.log("ExportScriptarium.onActorDirectoryMenu", actorDirectory, menus)
|
||||
menus.push({
|
||||
name: 'Export Personnages <i class="fa-regular fa-file-csv"></i>',
|
||||
icon: IMG_SCRIPTARIUM,
|
||||
name: 'Export Personnages',
|
||||
icon: '<i class="fa-solid fa-download"></i>', //IMG_SCRIPTARIUM,
|
||||
condition: (target) => game.user.isGM &&
|
||||
OptionsAvancees.isUsing(EXPORT_CSV_SCRIPTARIUM) &&
|
||||
this.$getActors(actorDirectory, target).length > 0,
|
||||
@@ -28,22 +32,28 @@ export class ExportScriptarium {
|
||||
}
|
||||
|
||||
$getTargetName(actorDirectory, target) {
|
||||
target = $(target)
|
||||
const li = target.closest(".directory-item")
|
||||
const folderId = li.data("folderId")
|
||||
const actorId = li.data("documentId")
|
||||
const actorId = li.data("entryId")
|
||||
return actorId
|
||||
? game.actors.get(actorId).name
|
||||
: actorDirectory.folders.find(it => it.id == folderId).name
|
||||
: actorDirectory.collection.filter(it => it.folder.id == folderId).name
|
||||
}
|
||||
|
||||
$getActors(actorDirectory, target) {
|
||||
if (actorDirectory.id != "actors") {
|
||||
return []
|
||||
}
|
||||
// DEBUG console.log("ExportScriptarium.$getActors", actorDirectory, target)
|
||||
target = $(target)
|
||||
const li = target.closest(".directory-item")
|
||||
const folderId = li.data("folderId")
|
||||
const actorId = li.data("documentId")
|
||||
const actorId = li.data("entryId")
|
||||
const actors = actorId
|
||||
? [game.actors.get(actorId)]
|
||||
: folderId
|
||||
? actorDirectory.folders.find(it => it.id == folderId).contents
|
||||
? actorDirectory.collection.filter(it => it.folder.id == folderId)
|
||||
: []
|
||||
return actors.filter(it => it.type == ACTOR_TYPES.personnage)
|
||||
}
|
||||
@@ -54,7 +64,7 @@ export class ExportScriptarium {
|
||||
const actorLines = actors.map(actor => Misc.join(this.getActorLine(actor), ';'))
|
||||
const data = Misc.join([header, ...actorLines], eol)
|
||||
const filename = `scriptarium-${targetName?.slugify()}.csv`;
|
||||
saveDataToFile(data, "text/csv;charset=windows-1252", `${filename}`);
|
||||
foundry.utils.saveDataToFile(data, "text/csv;charset=windows-1252", `${filename}`);
|
||||
}
|
||||
|
||||
getHeaderLine() {
|
||||
|
@@ -4,8 +4,7 @@ import { Misc } from "../misc.js"
|
||||
|
||||
export const ACTION_ITEM_ENCHANTER = {
|
||||
code: 'item-enchanter', label: 'Enchanter', icon: it => 'fa-solid fa-sparkles',
|
||||
filter: it => game.user.isGM || DialogEnchanter.isEnchantable(it),
|
||||
optionsFilter: options => options.editable,
|
||||
filter: it => game.user.isGM || DialogEnchanter.isEnchantable(it) && it.parent?.type != ACTOR_TYPES.commerce,
|
||||
action: (item, actor) => DialogEnchanter.enchanter(item)
|
||||
}
|
||||
|
||||
|
@@ -15,21 +15,21 @@ const _SPACEHOLDER = { placeholder: true }
|
||||
const _VENDRE = {
|
||||
code: 'item-vendre', label: 'Vendre ou donner', icon: it => 'fa-solid fa-comments-dollar',
|
||||
filter: it => Misc.toInt(it.system.quantite) > 0,
|
||||
optionsFilter: options => options.editable,
|
||||
action: (item, actor) => item.proposerVente()
|
||||
}
|
||||
const _ACHAT_SERVICE = {
|
||||
code: 'item-service-acheter', label: 'Acheter', icon: it => 'fa-regular fa-coins',
|
||||
const _ACHETER = {
|
||||
code: 'item-acheter', label: 'Acheter', icon: it => 'fa-regular fa-coins',
|
||||
filter: it => Misc.toInt(it.system.quantite) > 0 && it.parent?.type == ACTOR_TYPES.commerce,
|
||||
action: (item, actor) => actor.vente(item)
|
||||
}
|
||||
const _MONTRER = {
|
||||
code: 'item-montrer', label: 'Montrer', icon: it => 'fa-solid fa-comment',
|
||||
allowLimited: true,
|
||||
action: (item, actor) => item.postItemToChat()
|
||||
}
|
||||
const _SPLIT = {
|
||||
code: 'item-split', label: 'Séparer le goupe', icon: it => 'fa-solid fa-unlink',
|
||||
filter: it => Misc.toInt(it.system.quantite) > 1,
|
||||
filter: it => Misc.toInt(it.system.quantite) > 1 && it.parent?.type != ACTOR_TYPES.commerce,
|
||||
action: (item, actor) => RdDSheetUtility.splitItem(item, actor)
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ const _EDIT = {
|
||||
}
|
||||
const _DELETE = {
|
||||
code: 'item-delete', label: 'Supprimer', icon: it => 'fa-solid fa-trash',
|
||||
optionsFilter: options => options.editable && options.isOwner,
|
||||
optionsFilter: options => options.isOwner,
|
||||
action: (item, actor) => RdDUtility.confirmActorItemDelete(item, actor)
|
||||
}
|
||||
const _EQUIPER = {
|
||||
@@ -51,30 +51,25 @@ const _EQUIPER = {
|
||||
const _CUISINER = {
|
||||
code: 'item-cuisiner', label: 'Cuisiner', icon: it => 'fa-solid fa-utensils',
|
||||
filter: it => it.getUtilisation() == 'cuisine' && it.system.sust > 0,
|
||||
optionsFilter: options => options.editable,
|
||||
action: (item, actor) => actor.preparerNourriture(item)
|
||||
}
|
||||
const _MANGER_CRU = {
|
||||
code: 'item-manger-cru', label: 'Manger cru', icon: it => 'fa-solid fa-drumstick-bite',
|
||||
filter: it => it.getUtilisation() == 'cuisine' && it.system.sust > 0,
|
||||
optionsFilter: options => options.editable,
|
||||
action: (item, actor) => actor.mangerNourriture(item)
|
||||
}
|
||||
const _MANGER = {
|
||||
code: 'item-manger', label: 'Manger', icon: it => 'fa-solid fa-utensils',
|
||||
filter: it => !(it.system.boisson),
|
||||
optionsFilter: options => options.editable,
|
||||
action: (item, actor) => actor.mangerNourriture(item)
|
||||
}
|
||||
const _BOIRE = {
|
||||
code: 'item-boire', label: 'Boire', icon: it => 'fa-solid fa-glass-water',
|
||||
filter: it => it.system.boisson,
|
||||
optionsFilter: options => options.editable,
|
||||
action: (item, actor) => actor.mangerNourriture(item)
|
||||
}
|
||||
const _DECOCTION = {
|
||||
code: 'item-decoction', label: 'Décoction', icon: it => 'fa-solid fa-flask-vial',
|
||||
optionsFilter: options => options.editable,
|
||||
action: (item, actor) => actor.fabriquerDecoctionHerbe(item)
|
||||
}
|
||||
const _OUVRIR = {
|
||||
@@ -84,14 +79,12 @@ const _OUVRIR = {
|
||||
|
||||
const _LIRE = {
|
||||
code: 'item-lire', label: 'Lire', icon: it => 'fa-solid fa-book-open',
|
||||
optionsFilter: options => options.editable,
|
||||
action: (item, actor) => actor.actionLire(item)
|
||||
}
|
||||
|
||||
const _REFOULER = {
|
||||
code: 'item-refouler', label: 'Refouler', icon: it => 'fa-solid fa-burst',
|
||||
filter: it => it.system.refoulement > 0,
|
||||
optionsFilter: options => options.editable,
|
||||
action: (item, actor) => actor.actionRefoulement(item)
|
||||
}
|
||||
|
||||
@@ -102,7 +95,7 @@ const _SORT_RESERVE = {
|
||||
}
|
||||
|
||||
export const COMMON_ACTIONS = [_EQUIPER]
|
||||
export const DEFAULT_ACTIONS = [_SPACEHOLDER, _SPLIT, _VENDRE, _MONTRER, _EDIT, _DELETE]
|
||||
export const DEFAULT_ACTIONS = [_ACHETER, _SPACEHOLDER, _SPLIT, _VENDRE, _MONTRER, _EDIT, _DELETE]
|
||||
|
||||
export const ITEM_ACTIONS = {
|
||||
faune: [_CUISINER, _MANGER_CRU],
|
||||
@@ -114,17 +107,16 @@ export const ITEM_ACTIONS = {
|
||||
ombre: [_REFOULER],
|
||||
plante: [_CUISINER, _MANGER_CRU],
|
||||
queue: [_REFOULER],
|
||||
sort: [_SORT_RESERVE],
|
||||
service: [_ACHAT_SERVICE]
|
||||
sort: [_SORT_RESERVE]
|
||||
}
|
||||
|
||||
|
||||
export class ItemAction {
|
||||
|
||||
static applies(action, item, options) {
|
||||
return action && item
|
||||
&& item.isActionAllowed(action.code)
|
||||
&& (!action.filter || action.filter(item))
|
||||
&& (action.allowLimited || options.editable)
|
||||
&& (!action.optionsFilter || action.optionsFilter(options))
|
||||
}
|
||||
|
||||
@@ -136,10 +128,10 @@ export class ItemAction {
|
||||
}
|
||||
|
||||
static async onActionItem(event, actor, options) {
|
||||
const item = RdDSheetUtility.getItem(event, actor)
|
||||
const code = $(event.currentTarget).data('code')
|
||||
const item = RdDSheetUtility.getItem(event, actor)
|
||||
const action = item?.itemActions().find(it => it.code == code)
|
||||
if (action && (!action.optionsFilter || action.optionsFilter(options))) {
|
||||
if (action && ItemAction.applies(action, item, options)) {
|
||||
await action.action(item, actor)
|
||||
}
|
||||
}
|
||||
|
@@ -8,6 +8,7 @@ import { RdDTimestamp } from "./time/rdd-timestamp.js";
|
||||
import { RdDRaretes } from "./item/raretes.js";
|
||||
import { VOIES_DRACONIC } from "./item-sort.js";
|
||||
import { SystemCompendiums } from "./settings/system-compendiums.js";
|
||||
import { Misc } from "./misc.js";
|
||||
|
||||
class Migration {
|
||||
get code() { return "sample"; }
|
||||
@@ -631,13 +632,37 @@ class _12_0_38_TachesEcriture extends Migration {
|
||||
|
||||
async migrate() {
|
||||
await this.applyItemsUpdates(items => items
|
||||
.filter(it => [ITEM_TYPES.tache, ITEM_TYPES.livre, ITEM_TYPES.oeuvre, ITEM_TYPES.meditation].includes(it.type) )
|
||||
.filter(it => it.system.competence == 'Ecriture')
|
||||
.filter(it => [ITEM_TYPES.tache, ITEM_TYPES.livre, ITEM_TYPES.oeuvre, ITEM_TYPES.meditation].includes(it.type))
|
||||
.filter(it => Grammar.equalsInsensitive(it.system.competence, 'ecriture'))
|
||||
.map(it => { return { _id: it.id, 'system.competence': 'Écriture' } })
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
class _13_0_4_FixReveActuel extends Migration {
|
||||
get code() { return "fix-reve-actuel" }
|
||||
get version() { return "13.0.4" }
|
||||
|
||||
async migrate() {
|
||||
game.actors.forEach(it => it.update({ 'system.carac.-=reve-actuel': null }))
|
||||
}
|
||||
}
|
||||
|
||||
class _13_0_7_FixNiveauOeuvres extends Migration {
|
||||
get code() { return "fix-niveau-oeuvres" }
|
||||
get version() { return "13.0.7" }
|
||||
|
||||
async migrate() {
|
||||
await this.applyItemsUpdates(items => items
|
||||
.filter(it => [ITEM_TYPES.musique, ITEM_TYPES.chant, ITEM_TYPES.danse, ITEM_TYPES.recettecuisine].includes(it.type))
|
||||
.map(it => {
|
||||
const niveau = isNaN(it.system.niveau) ? 0 : parseInt(it.system.niveau)
|
||||
return { _id: it.id, 'system.niveau': niveau }
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export class Migrations {
|
||||
static getMigrations() {
|
||||
return [
|
||||
@@ -660,7 +685,9 @@ export class Migrations {
|
||||
new _12_0_26_MigrationVoieSorts(),
|
||||
new _12_0_32_MigrationRaces(),
|
||||
new _12_0_37_MigrationAlchimieEtat(),
|
||||
new _12_0_38_TachesEcriture()
|
||||
new _12_0_38_TachesEcriture(),
|
||||
new _13_0_4_FixReveActuel(),
|
||||
new _13_0_7_FixNiveauOeuvres(),
|
||||
];
|
||||
}
|
||||
|
||||
|
@@ -17,23 +17,23 @@ import { RdDRollResult } from "./rdd-roll-result.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
const premierRoundInit = [
|
||||
{ pattern: 'hast', init: 5.90 },
|
||||
{ pattern: 'lance', init: 5.85 },
|
||||
{ pattern: 'baton', init: 5.80 },
|
||||
{ pattern: 'doubledragonne', init: 5.75 },
|
||||
{ pattern: 'esparlongue', init: 5.70 },
|
||||
{ pattern: 'epeedragonne', init: 5.65 },
|
||||
{ pattern: 'epeebatarde', init: 5.60 },
|
||||
{ pattern: 'epeecyane', init: 5.55 },
|
||||
{ pattern: 'epeesorde', init: 5.50 },
|
||||
{ pattern: 'grandehache', init: 5.45 },
|
||||
{ pattern: 'bataille', init: 5.40 },
|
||||
{ pattern: 'epeegnome', init: 5.35 },
|
||||
{ pattern: 'masse', init: 5.30 },
|
||||
{ pattern: 'gourdin', init: 5.25 },
|
||||
{ pattern: 'fleau', init: 5.20 },
|
||||
{ pattern: 'dague', init: 5.15 },
|
||||
{ pattern: 'autre', init: 5.10 },
|
||||
{ pattern: 'hast' },
|
||||
{ pattern: 'lance' },
|
||||
{ pattern: 'baton' },
|
||||
{ pattern: 'doubledragonne' },
|
||||
{ pattern: 'esparlongue' },
|
||||
{ pattern: 'epeedragonne' },
|
||||
{ pattern: 'epeebatarde' },
|
||||
{ pattern: 'epeecyane' },
|
||||
{ pattern: 'epeesorde' },
|
||||
{ pattern: 'grandehache' },
|
||||
{ pattern: 'bataille' },
|
||||
{ pattern: 'epeegnome' },
|
||||
{ pattern: 'masse' },
|
||||
{ pattern: 'gourdin' },
|
||||
{ pattern: 'fleau' },
|
||||
{ pattern: 'dague' },
|
||||
{ pattern: 'autre' },
|
||||
];
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -45,6 +45,10 @@ export class RdDCombatManager extends Combat {
|
||||
Hooks.on("updateCombat", (combat, change, options, userId) => { RdDCombat.onUpdateCombat(combat, change, options, userId) });
|
||||
Hooks.on("preDeleteCombat", (combat, html, id) => { combat.onPreDeleteCombat() })
|
||||
Hooks.on("deleteCombat", (combat, html, id) => { combat.onDeleteCombat() })
|
||||
|
||||
for (let i = 0.0; i < premierRoundInit.length; i++) {
|
||||
premierRoundInit[i].init = 5.99 - i / 100
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -108,9 +112,7 @@ export class RdDCombatManager extends Combat {
|
||||
async rollInitiative(ids, messageOptions = {}) {
|
||||
console.log(`${game.system.title} | Combat.rollInitiative()`, ids, messageOptions)
|
||||
ids = typeof ids === "string" ? [ids] : ids
|
||||
ids.forEach(async id =>
|
||||
await this.rollInitRdD(id, undefined, messageOptions)
|
||||
)
|
||||
Promise.all(ids.map(id => this.rollInitRdD(id, undefined, messageOptions)))
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -251,19 +253,20 @@ export class RdDCombatManager extends Combat {
|
||||
let initMissing = game.combat.combatants.find(it => !it.initiative);
|
||||
if (!initMissing) { // Premier round !
|
||||
for (let combatant of game.combat.combatants) {
|
||||
let action = combatant.initiativeData?.arme;
|
||||
//console.log("Parsed !!!", combatant, initDone, game.combat.current, arme);
|
||||
if (action && action.type == "arme") {
|
||||
for (let initData of premierRoundInit) {
|
||||
if (Grammar.toLowerCaseNoAccentNoSpace(action.system.initpremierround).includes(initData.pattern)) {
|
||||
let msg = `<h4>L'initiative de ${combatant.actor.getAlias()} a été modifiée !</h4>
|
||||
if (combatant.initiativeData?.arme?.type == "arme") {
|
||||
// TODO: get init data premier round
|
||||
const initiativeData = combatant.initiativeData;
|
||||
const action = combatant.initiativeData.arme;
|
||||
const fromArme = Grammar.toLowerCaseNoAccentNoSpace(action.system.initpremierround)
|
||||
const initData = premierRoundInit.find(it => fromArme.includes(initData.pattern))
|
||||
if (initData) {
|
||||
let msg = `<h4>L'initiative de ${combatant.actor.getAlias()} a été modifiée !</h4>
|
||||
<hr>
|
||||
<div>
|
||||
Etant donné son ${action.name}, son initative pour ce premier round est désormais de ${initData.init}.
|
||||
</div>`
|
||||
ChatMessage.create({ content: msg });
|
||||
game.combat.setInitiative(combatant._id, initData.init);
|
||||
}
|
||||
ChatMessage.create({ content: msg });
|
||||
game.combat.setInitiative(combatant._id, initData.init);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -297,7 +300,7 @@ export class RdDCombatManager extends Combat {
|
||||
].concat(options);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
static rollInitiativeAction(combatantId, action) {
|
||||
static async rollInitiativeAction(combatantId, action) {
|
||||
const combatant = game.combat.combatants.get(combatantId)
|
||||
const actor = RdDCombatManager.getActorCombatant(combatant)
|
||||
if (actor == undefined) { return [] }
|
||||
@@ -308,7 +311,8 @@ export class RdDCombatManager extends Combat {
|
||||
const ajustement = RdDCombatManager.calculAjustementInit(actor, action)
|
||||
const rollFormula = RdDCombatManager.formuleInitiative(init.offset, init.carac, init.niveau, ajustement);
|
||||
|
||||
game.combat.rollInitRdD(combatantId, rollFormula, init);
|
||||
await game.combat.rollInitRdD(combatantId, rollFormula, init);
|
||||
combatant.initiativeData
|
||||
}
|
||||
|
||||
static getInitData(actor, action) {
|
||||
@@ -1141,7 +1145,7 @@ export class RdDCombat {
|
||||
if (RdDCombat.isParticuliere(defenderRoll)) {
|
||||
await this._onEsquiveParticuliere(defenderRoll)
|
||||
}
|
||||
return
|
||||
return
|
||||
}
|
||||
return await this._onEsquiveEchec(defenderRoll)
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ export class RdDRoll extends Dialog {
|
||||
etat: actor.getEtatGeneral(),
|
||||
moral: actor.getMoralTotal(), /* La valeur du moral pour les jets de volonté */
|
||||
amoureux: actor.listeSuivants(it => it.coeur > 0),
|
||||
carac: actor.system.carac,
|
||||
carac: foundry.utils.duplicate(actor.system.carac),
|
||||
finalLevel: 0,
|
||||
diffConditions: 0,
|
||||
diffLibre: rollData.competence?.system.default_diffLibre ?? 0,
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import { SHOW_DICE, SYSTEM_RDD } from "./constants.js";
|
||||
import { RollDataAjustements } from "./rolldata-ajustements.js";
|
||||
import { RdDUtility } from "./rdd-utility.js";
|
||||
import { TMRUtility } from "./tmr-utility.js";
|
||||
import { COORD_TMR_INCONNU, TMRUtility } from "./tmr-utility.js";
|
||||
import { RdDResolutionTable } from "./rdd-resolution-table.js";
|
||||
import { RdDTMRRencontreDialog } from "./rdd-tmr-rencontre-dialog.js";
|
||||
import { ChatUtility } from "./chat-utility.js";
|
||||
@@ -996,6 +996,10 @@ export class RdDTMRDialog extends Dialog {
|
||||
const targetOddq = this.pixiTMR.computeEventOddq(event)
|
||||
const targetCoord = TMRUtility.oddqToCoordTMR(targetOddq)
|
||||
|
||||
if (targetCoord == COORD_TMR_INCONNU){
|
||||
ui.notifications.error("Vous ne pouvez pas vous déplacer ici");
|
||||
return
|
||||
}
|
||||
// Validation de la case de destination (gestion du cas des rencontres qui peuvent téléporter)
|
||||
const typeDeplacement = this._calculDeplacement(targetCoord, currentCoord, currentOddq, targetOddq);
|
||||
|
||||
|
@@ -1,6 +1,5 @@
|
||||
/* -------------------------------------------- */
|
||||
import { HtmlUtility } from "./html-utility.js";
|
||||
import { Misc } from "./misc.js";
|
||||
import { RdDCombatManager } from "./rdd-combat.js";
|
||||
import { Targets } from "./targets.js";
|
||||
|
||||
@@ -89,7 +88,7 @@ export class RdDTokenHud {
|
||||
if (target?.actor) {
|
||||
const hudSoins = { blessures: target.actor.blessuresASoigner() ?? [] };
|
||||
if (hudSoins.blessures.length > 0) {
|
||||
const controlIconTarget = html.find('.control-icon[data-action=combat]');
|
||||
const controlIconTarget = $(html).find('.control-icon[data-action=combat]');
|
||||
await RdDTokenHud._configureSubMenu(controlIconTarget,
|
||||
'systems/foundryvtt-reve-de-dragon/templates/hud-actor-soins.hbs',
|
||||
hudSoins,
|
||||
|
@@ -4,7 +4,7 @@ import { Misc } from "../misc.js"
|
||||
export const EXPORT_CSV_SCRIPTARIUM = 'export-csv-scriptarium'
|
||||
|
||||
const OPTIONS_AVANCEES = [
|
||||
{ group: 'Menus', name: EXPORT_CSV_SCRIPTARIUM, descr: "Proposer le menu d'export csv Scriptarium" },
|
||||
{ group: 'Menus', name: EXPORT_CSV_SCRIPTARIUM, descr: "Proposer le menu d'export csv Scriptarium", default: false },
|
||||
]
|
||||
|
||||
export class OptionsAvancees extends FormApplication {
|
||||
@@ -24,10 +24,6 @@ export class OptionsAvancees extends FormApplication {
|
||||
})
|
||||
}
|
||||
|
||||
constructor(...args) {
|
||||
super(...args)
|
||||
}
|
||||
|
||||
static _getId(name) {
|
||||
return `rdd-advanced-${name}`
|
||||
}
|
||||
|
@@ -2,6 +2,9 @@ import { Misc } from "./misc.js";
|
||||
import { Grammar } from "./grammar.js";
|
||||
import { RdDDice } from "./rdd-dice.js";
|
||||
|
||||
const TMR_INCONNU = "inconnu"
|
||||
export const COORD_TMR_INCONNU = "A0"
|
||||
|
||||
export const TMRType = {
|
||||
cite: { type: 'cite', name: "cité", genre: "f" },
|
||||
sanctuaire: { type: 'sanctuaire', name: "sanctuaire", genre: 'm' },
|
||||
@@ -16,13 +19,15 @@ export const TMRType = {
|
||||
marais: { type: 'marais', name: "marais", genre: "m" },
|
||||
gouffre: { type: 'gouffre', name: "gouffre", genre: "m" },
|
||||
necropole: { type: 'necropole', name: "nécropole", genre: "f" },
|
||||
desolation: { type: 'desolation', name: "désolation", genre: "f" }
|
||||
desolation: { type: 'desolation', name: "désolation", genre: "f" },
|
||||
[TMR_INCONNU]: { type: TMR_INCONNU, name: TMR_INCONNU, genre: "m" }
|
||||
}
|
||||
|
||||
export const FLEUVE_COORD = 'Fleuve'
|
||||
|
||||
const TMRMapping = {
|
||||
Fleuve: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli", generique: 'fleuve' },
|
||||
[COORD_TMR_INCONNU]: { type: TMR_INCONNU, label: TMR_INCONNU },
|
||||
A1: { type: TMRType.cite.type, label: "Cité Vide" },
|
||||
B1: { type: TMRType.plaines.type, label: "Plaines d’Assorh" },
|
||||
C1: { type: TMRType.necropole.type, label: "Nécropole de Kroak" },
|
||||
@@ -272,7 +277,7 @@ export class TMRUtility {
|
||||
}
|
||||
|
||||
static getTMRType(coord) {
|
||||
const tmr = TMRUtility.getTMR(coord);
|
||||
const tmr = TMRUtility.getTMR(coord)
|
||||
return Misc.upperFirst(TMRType[tmr.type].name);
|
||||
}
|
||||
|
||||
|
@@ -13,7 +13,7 @@ export class Conquete extends Draconique {
|
||||
async onActorCreateOwned(actor, item) { await this._creerConquete(actor, item); }
|
||||
|
||||
code() { return 'conquete' }
|
||||
tooltip(linkData) { return `Doit être conquis` }
|
||||
tooltip(linkData) { return 'Doit être conquis' }
|
||||
img() { return 'systems/foundryvtt-reve-de-dragon/icons/tmr/conquete.svg' }
|
||||
|
||||
createSprite(pixiTMR) {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { ITEM_TYPES } from "../constants.js";
|
||||
import { TMRUtility } from "../tmr-utility.js";
|
||||
import { COORD_TMR_INCONNU, TMRUtility } from "../tmr-utility.js";
|
||||
import { PixiTMR } from "./pixi-tmr.js";
|
||||
|
||||
const registeredEffects = [
|
||||
@@ -12,7 +12,7 @@ export class Draconique {
|
||||
static init() {
|
||||
}
|
||||
|
||||
static isCaseTMR(item) { return item.type == ITEM_TYPES.casetmr; }
|
||||
static isCaseTMR(item) { return item.type == ITEM_TYPES.casetmr }
|
||||
static isQueueDragon(item) { return item.isQueueDragon(); }
|
||||
static isSouffleDragon(item) { return item.type == ITEM_TYPES.souffle; }
|
||||
static isTeteDragon(item) { return item.type == ITEM_TYPES.tete; }
|
||||
@@ -92,7 +92,7 @@ export class Draconique {
|
||||
const tooltip = this.tooltip(linkData);
|
||||
return this._createToken(pixiTMR, linkData, coordTMR, type, tooltip);
|
||||
}
|
||||
|
||||
|
||||
tokens(pixiTMR, linkData, coordTMR, type = undefined) {
|
||||
const tooltip = this.tooltip(linkData);
|
||||
return [this._createToken(pixiTMR, linkData, coordTMR, type, tooltip)];
|
||||
@@ -127,7 +127,7 @@ export class Draconique {
|
||||
* @param {*} coord les coordonnées d'une case. Si undefined toute case du type correspondra,
|
||||
*/
|
||||
isCase(item, coord = undefined) {
|
||||
return Draconique.isCaseTMR(item) && item.system.specific == this.code() && (coord ? item.system.coord == coord : true);
|
||||
return Draconique.isCaseTMR(item) && item.system.specific == this.code() && (coord ? (coord != COORD_TMR_INCONNU && item.system.coord == coord) : true);
|
||||
}
|
||||
|
||||
find(list, coord = undefined) {
|
||||
@@ -150,7 +150,7 @@ export class Draconique {
|
||||
}
|
||||
|
||||
isCaseForSource(item, draconique) {
|
||||
return Draconique.isCaseTMR(item) && item.system.specific == this.code() && item.system.sourceid == draconique.id;
|
||||
return Draconique.isCaseTMR(item) && item.system.specific == this.code() && item.system.sourceid == draconique.id
|
||||
}
|
||||
|
||||
async onVisiteSupprimer(actor, tmr, onRemoveToken) {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import { Grammar } from "../grammar.js";
|
||||
import { tmrTokenZIndex } from "../tmr-constants.js";
|
||||
import { TMRUtility } from "../tmr-utility.js";
|
||||
import { COORD_TMR_INCONNU, TMRUtility } from "../tmr-utility.js";
|
||||
import { Draconique } from "./draconique.js";
|
||||
|
||||
export class QueteEaux extends Draconique {
|
||||
@@ -9,11 +9,13 @@ export class QueteEaux extends Draconique {
|
||||
match(item) { return Draconique.isTeteDragon(item) && Grammar.toLowerCaseNoAccent(item.name).includes("quete des eaux"); }
|
||||
manualMessage() { return "Vous devrez re-configurer votre Nouvelle Quête des Eaux une fois un lac ou marais vaincu" }
|
||||
async onActorCreateOwned(actor, tete) {
|
||||
await this.createCaseTmr(actor, "Nouvelle Quête des Eaux", { coord: 'A0' }, tete.id);
|
||||
await this.createCaseTmr(actor, "Nouvelle Quête des Eaux", { coord: COORD_TMR_INCONNU }, tete.id);
|
||||
}
|
||||
|
||||
code() { return 'maitrisee' }
|
||||
tooltip(linkData) { return `Quête des eaux, ${TMRUtility.getTMRType(linkData.system.coord)} maîtrisé` }
|
||||
tooltip(linkData) {
|
||||
return linkData.system.coord == COORD_TMR_INCONNU ? 'Nouvelle Quête des eaux en cours' : `Quête des eaux, ${TMRUtility.getTMRType(linkData.system.coord)} maîtrisé`
|
||||
}
|
||||
img() { return 'systems/foundryvtt-reve-de-dragon/icons/tmr/maitrisee.svg' }
|
||||
|
||||
createSprite(pixiTMR) {
|
||||
|
@@ -1,5 +1,6 @@
|
||||
import { Grammar } from "../grammar.js";
|
||||
import { tmrTokenZIndex } from "../tmr-constants.js";
|
||||
import { COORD_TMR_INCONNU } from "../tmr-utility.js";
|
||||
import { Draconique } from "./draconique.js";
|
||||
|
||||
export class TerreAttache extends Draconique {
|
||||
@@ -9,7 +10,7 @@ export class TerreAttache extends Draconique {
|
||||
manualMessage() { return "Vous pouvez re-configurer votre Nouvelle Terre d'attache" }
|
||||
|
||||
async onActorCreateOwned(actor, tete) {
|
||||
await this.createCaseTmr(actor, "Nouvelle Terre d'attache", { coord: 'A0' }, tete.id);
|
||||
await this.createCaseTmr(actor, "Nouvelle Terre d'attache", { coord: COORD_TMR_INCONNU }, tete.id);
|
||||
}
|
||||
|
||||
code() { return 'attache' }
|
||||
|
@@ -811,7 +811,7 @@
|
||||
},
|
||||
"musique": {
|
||||
"templates": ["description"],
|
||||
"niveau": "",
|
||||
"niveau": 0,
|
||||
"reference": ""
|
||||
},
|
||||
"danse": {
|
||||
@@ -819,12 +819,12 @@
|
||||
"type": "",
|
||||
"agilite": false,
|
||||
"apparence": false,
|
||||
"niveau": "",
|
||||
"niveau": 0,
|
||||
"reference": ""
|
||||
},
|
||||
"chant": {
|
||||
"templates": ["description"],
|
||||
"niveau": "",
|
||||
"niveau": 0,
|
||||
"reference": ""
|
||||
},
|
||||
"jeu": {
|
||||
@@ -836,7 +836,7 @@
|
||||
},
|
||||
"recettecuisine": {
|
||||
"templates": ["description"],
|
||||
"niveau": "",
|
||||
"niveau": 0,
|
||||
"ingredients": "",
|
||||
"duree": "",
|
||||
"sust": 0,
|
||||
|
@@ -13,22 +13,22 @@
|
||||
<label class="carac-xp"/>
|
||||
{{else}}
|
||||
{{#if carac.isLevelUp}}
|
||||
<span class="carac-label tooltip" name="system.carac.{{key}}.label">
|
||||
<span class="tooltiptext ttt-levelup">
|
||||
Vous pouvez dépenser {{carac.xpNext}} points d'Experience pour augmenter de 1 votre caractéristique {{carac.label}}
|
||||
</span>
|
||||
<span class="carac-label" name="system.carac.{{key}}.label">
|
||||
<a name={{key}}>{{carac.label}}</a>
|
||||
<a class="carac-xp-augmenter" name="augmenter.{{key}}" data-tooltip="Augmenter la caractéristique avec l'expérience">
|
||||
<a class="carac-xp-augmenter" name="augmenter.{{key}}"
|
||||
data-tooltip="Vous pouvez dépenser {{carac.xpNext}} points d'Experience pour augmenter votre caractéristique {{carac.label}}">
|
||||
<i class="fas fa-arrow-alt-circle-up"></i>
|
||||
</a>
|
||||
</span>
|
||||
{{else}}
|
||||
<span class="carac-label tooltip" name="system.carac.{{key}}.label"><a class="roll-carac" data-carac-name={{key}}>{{carac.label}}</a></span>
|
||||
<span class="carac-label" name="system.carac.{{key}}.label"><a class="roll-carac" data-carac-name={{key}}>{{carac.label}}</a></span>
|
||||
{{/if}}
|
||||
<input class="carac-value" type="number" name="system.carac.{{key}}.value" value="{{carac.value}}" data-dtype="number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||
<span class="carac-xp tooltip">
|
||||
<input class="carac-xp" type="number" name="system.carac.{{key}}.xp" value="{{carac.xp}}" data-dtype="number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
|
||||
<span class="tooltiptext ttt-xp">Vous devez acquérir {{carac.xpNext}} points d'Experience pour augmenter de 1 votre {{carac.label}}</span>
|
||||
<span class="carac-xp">
|
||||
<input class="carac-xp" type="number" name="system.carac.{{key}}.xp" value="{{carac.xp}}" data-dtype="number"
|
||||
data-tooltip="Vous devez acquérir {{carac.xpNext}} points d'Experience pour augmenter votre {{carac.label}}"
|
||||
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}
|
||||
/>
|
||||
</span>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
@@ -16,13 +16,13 @@
|
||||
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
||||
|
||||
{{#if @root.options.vueDetaillee}}
|
||||
<span class="competence-xp {{#unless system.isLevelUp}}tooltip{{/unless}}">
|
||||
<span class="competence-xp">
|
||||
<input class="competence-xp " type="text" compname="{{name}}" name="comp-xp-{{name}}"
|
||||
value="{{numberFormat system.xp decimals=0 sign=false}}" data-dtype="number"
|
||||
{{#unless system.isLevelUp}}
|
||||
data-tooltip="Vous devez acquérir {{system.xpNext}} points d'Experience pour augmenter de 1 votre compétence {{name}}"
|
||||
{{/unless}}
|
||||
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
|
||||
{{#unless system.isLevelUp}}
|
||||
<span class="tooltiptext left-competence ttt-xp">Vous devez acquérir {{system.xpNext}} points d'Experience pour augmenter de 1 votre compétence {{name}}</span>
|
||||
{{/unless}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{#if (eq system.categorie 'draconic')}}
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<div>
|
||||
<h1 class="charname">{{name}}</h1>
|
||||
</div>
|
||||
<div>
|
||||
<div class="flexrow">
|
||||
<a class="button-appel-chance"><img class="button-img" src="systems/foundryvtt-reve-de-dragon/assets/ui/appel-chance.svg" data-tooltip="Appel à la chance"/></a>
|
||||
<a class="button-encaissement"><img class="button-img" src="icons/svg/bones.svg" data-tooltip="Encaisser des dommages"/></a>
|
||||
<a class="button-ethylisme"><img class="button-img" src="icons/svg/tankard.svg" data-tooltip="Boire"/></a>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<h4>{{#if isVente}}Achat{{else}}Don{{/if}}</h4>
|
||||
<h4><img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
{{#if isVente}}Achat{{else}}Don{{/if}}</h4>
|
||||
<p>
|
||||
{{#if acheteur}}{{acheteur.name}}{{else}}L'acheteur{{/if}} a
|
||||
{{#if isVente}}acheté{{else}}pris{{/if}}
|
||||
|
@@ -1,8 +1,10 @@
|
||||
<img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" />
|
||||
<h4>{{actor.name}} a gagné de l'expérience</h4>
|
||||
<h4><img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" />
|
||||
{{actor.name}} a gagné de l'expérience
|
||||
</h4>
|
||||
{{#each xpData as |it|}}
|
||||
{{#if (gt it.xpCarac 0)}}
|
||||
<hr>
|
||||
<hr>
|
||||
<p>
|
||||
{{it.xpCarac}} point{{#if (gt it.xpCarac 1)}}s{{/if}}
|
||||
{{#if it.caracRepartitionManuelle}}à répartir manuellement dans la caractéristique dérivée{{else}}en{{/if}}
|
||||
{{it.caracName}}.
|
||||
@@ -10,9 +12,11 @@
|
||||
L'expérience dans cette caractéristique est de {{it.checkCarac.xp}}, elle peut progresser!
|
||||
<br>Vous devez ouvrir votre fiche de personnage et appliquer l'augmentation manuellement.
|
||||
{{/if}}
|
||||
</p>
|
||||
{{/if}}
|
||||
{{#if (gt it.xpCompetence 0)}}
|
||||
<hr>
|
||||
<hr>
|
||||
<p>
|
||||
{{it.xpCompetence}} point{{#if (gt it.xpCompetence 1)}}s{{/if}} en {{it.competence.name}}.
|
||||
{{#if it.checkComp}}
|
||||
L'expérience dans cette compétence est de {{it.checkComp.xp}}, elle peut progresser jusqu'à {{it.checkComp.niveau}}!
|
||||
@@ -25,5 +29,6 @@
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</p>
|
||||
{{/if}}
|
||||
{{/each}}
|
@@ -1,2 +1,3 @@
|
||||
<img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" />
|
||||
<h4>C'est au tour de {{alias}} !</h4>
|
||||
<h4><img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" />
|
||||
C'est au tour de {{alias}} !
|
||||
</h4>
|
||||
|
@@ -1,13 +1,14 @@
|
||||
<img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" />
|
||||
<h4>Résumé de santé pour {{alias}}</h4>
|
||||
<div data-combatid="{{combatId}}" data-combatmessage="actor-turn-summary">{{blessuresStatus}}</div>
|
||||
<div>Son état général est de : {{etatGeneral}} {{#if isSonne}} et est <strong>sonné</strong>{{/if}}</div>
|
||||
<h4><img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" />
|
||||
Résumé de santé pour {{alias}}
|
||||
</h4>
|
||||
<p data-combatid="{{combatId}}" data-combatmessage="actor-turn-summary">{{blessuresStatus}}</p>
|
||||
<p>Son état général est de : {{etatGeneral}} {{#if isSonne}} et est <strong>sonné</strong>{{/if}}</p>
|
||||
{{#if isGrave}}
|
||||
<div>{{alias}} souffre de Blessure(s) Grave(s) : n'oubliez pas de faire un Jet de Vie toutes les SC ({{SConst}}) minutes. Un point d'Endurance a été retiré automatiquement.</div>
|
||||
<p>{{alias}} souffre de Blessure(s) Grave(s) : n'oubliez pas de faire un Jet de Vie toutes les SC ({{SConst}}) minutes. Un point d'Endurance a été retiré automatiquement.</p>
|
||||
{{/if}}
|
||||
{{#if isCritique}}
|
||||
<div>{{alias}} souffre d'une <strong>Blessure Critique</strong> : faites un
|
||||
<p>{{alias}} souffre d'une <strong>Blessure Critique</strong> : faites un
|
||||
<a class="chat-card-button chat-jet-vie"
|
||||
data-tokenId="{{tokenId}}"
|
||||
data-actorId="{{actorId}}">Jet de Vie.<a></div>
|
||||
data-actorId="{{actorId}}">Jet de Vie.<a></p>
|
||||
{{/if}}
|
@@ -1,14 +1,15 @@
|
||||
<img class="chat-icon" src="{{rencontre.img}}" data-tooltip="{{rencontre.name}}" />
|
||||
<h4>{{#if mauvaise}}Mauvaise rencontre{{else}}Rencontre{{/if}} en {{typeTmr-name tmr.type}}</h4>
|
||||
<div>{{row.document.pack}}</div>
|
||||
<div>Jet: {{row.roll.formula}} : {{row.roll.total}}{{percentages}}</div>
|
||||
<h4><img class="chat-icon" src="{{rencontre.img}}" data-tooltip="{{rencontre.name}}" />
|
||||
{{#if mauvaise}}Mauvaise rencontre{{else}}Rencontre{{/if}} en {{typeTmr-name tmr.type}}
|
||||
</h4>
|
||||
<p>{{row.document.pack}}</p>
|
||||
<p>Jet: {{row.roll.formula}} : {{row.roll.total}}{{percentages}}</p>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
<p>{{rencontre.name}} de force {{rencontre.system.force}} ({{rencontre.system.formule}})</p>
|
||||
<p>{{linkCompendium row.document.pack row.document.id row.document.name}}</p>
|
||||
{{#if rencontre.system.description}}
|
||||
<div class="poesie-extrait">
|
||||
<p class="poesie-extrait">
|
||||
{{{rencontre.system.description}}}
|
||||
</div>
|
||||
</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
@@ -1,21 +1,21 @@
|
||||
<h4>Tirage aléatoire: {{document.name}}</h4>
|
||||
<div>
|
||||
<p>
|
||||
Tirage de {{typeName}} aléatoire
|
||||
{{#if options.showSource}} depuis {{document.pack}}{{/if}}
|
||||
</div>
|
||||
<div>Jet {{roll.formula}} : {{roll.total}}</div>
|
||||
</p>
|
||||
<p>Jet {{roll.formula}} : {{roll.total}}</p>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
<img class="chat-icon" src="{{document.img}}" data-tooltip="{{document.name}}" />
|
||||
<p>{{linkCompendium document.pack document.id document.name}}</p>
|
||||
{{#if document.system.formule}}
|
||||
<div class="poesie-extrait">
|
||||
<p class="poesie-extrait">
|
||||
@roll[{{document.system.formule}}]
|
||||
</div>
|
||||
</p>
|
||||
{{/if}}
|
||||
{{#if document.system.description}}
|
||||
<div class="poesie-extrait">
|
||||
<p class="poesie-extrait">
|
||||
{{{document.system.description}}}
|
||||
</div>
|
||||
</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,13 +1,12 @@
|
||||
<div>
|
||||
<img class="chat-icon" src="{{img}}" data-tooltip="{{typeName}}" />
|
||||
<h4>Table aléatoire: {{typeName}}</h4>
|
||||
{{#with (lookup table 0) as |row|}}
|
||||
<div>
|
||||
{{row.document.pack}}
|
||||
</div>
|
||||
{{/with}}
|
||||
<br>
|
||||
</div>
|
||||
<h4><img class="chat-icon" src="{{img}}" data-tooltip="{{typeName}}" />
|
||||
Table aléatoire: {{typeName}}
|
||||
</h4>
|
||||
{{#with (lookup table 0) as |row|}}
|
||||
<p>
|
||||
{{row.document.pack}}
|
||||
</p>
|
||||
{{/with}}
|
||||
<br>
|
||||
<div>
|
||||
<ul class="flexcol item-list alterne-list">
|
||||
{{#each table as |row|}}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
<img class="chat-icon" src="{{img}}" data-tooltip="potion de repos" />
|
||||
<h4>
|
||||
<img class="chat-icon" src="{{img}}" data-tooltip="potion de repos" />
|
||||
{{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée{{/if}}</strong>
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if system.magique}}
|
||||
Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}.
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
@@ -15,4 +15,4 @@
|
||||
{{/if}}
|
||||
{{/if}}.
|
||||
<br>La potion a été supprimée de l'équipement.
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,9 +1,8 @@
|
||||
<img class="chat-icon" src="{{img}}" data-tooltip="potion de repos" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{img}}" data-tooltip="potion de repos" />
|
||||
{{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée de puissance {{system.puissance}}{{/if}}</strong>.
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if system.magique}}
|
||||
Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}.
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
@@ -24,4 +23,4 @@
|
||||
Une fois consommée (vers fin Lyre), elle vous octroie un bonus de {{system.herbebonus}} segments de fatigue récupérés en plus à la fin de Chateau Dormant (à gérer manuellement).
|
||||
{{/if}}
|
||||
<br>La potion a été supprimée de l'équipement.
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,9 +1,8 @@
|
||||
<img class="chat-icon" src="{{img}}" data-tooltip="potion de soin" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{img}}" data-tooltip="potion de soin" />
|
||||
{{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée de {{system.puissance}} points de guérison{{/if}}</strong>
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if system.magique}}
|
||||
Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}.
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
@@ -22,4 +21,4 @@
|
||||
Lors de votre prochain jet de récupération à Chateau Dormant, vous bénéficierez d'un bonus de {{system.herbebonus}} (appliqué automatiquement).
|
||||
{{/if}}
|
||||
<br>La potion a été supprimée de l'équipement.
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" />
|
||||
{{attacker.name}} a entraîné {{defender.name}} au sol
|
||||
</h4>
|
||||
<hr>
|
||||
|
@@ -1,9 +1,8 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" />
|
||||
{{attacker.name}} a empoigné {{defender.name}}
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
<span class='chat-card-button-area'>
|
||||
{{attacker.name}} vient d'obtenir 2 points d'Emp, et peut
|
||||
entraîner {{defender.name}} au sol. Les deux protagonistes
|
||||
@@ -13,4 +12,4 @@
|
||||
Entraîner au sol
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,13 +1,10 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" />
|
||||
{{attacker.name}} a empoigné {{defender.name}}
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
<span class='chat-card-button-area'>
|
||||
<p>
|
||||
{{attacker.name}} a obtenu 2 points d'Emp à la fin du round précédent, et peut:
|
||||
|
||||
<ul><li>
|
||||
faire perdre des points d'Endurance à {{defender.name}}
|
||||
<br>
|
||||
@@ -30,6 +27,5 @@
|
||||
</a>
|
||||
{{/if}}
|
||||
</li></ul>
|
||||
</p>
|
||||
</span>
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,8 +1,7 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" />
|
||||
{{attacker.name}} a fait perdre de l'endurance à {{defender.name}}
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{defender.name}} reste immobilisé. L'empoignade peut continuer.
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,8 +1,7 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" />
|
||||
{{attacker.name}} a projeté {{defender.name}} au sol
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
L'empoignade est terminée et a été supprimée.
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" />
|
||||
{{#if (eq mode "empoigner")}}
|
||||
{{attacker.name}} tente d'empoigner {{defender.name}}
|
||||
{{/if}}
|
||||
@@ -16,7 +15,7 @@
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
|
||||
{{#if (gte empoignade.system.pointsemp 2)}}
|
||||
|
||||
@@ -75,4 +74,4 @@
|
||||
</span>
|
||||
<br>Points d'Emp: {{empoignade.system.pointsemp}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,9 +1,8 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" />
|
||||
{{attacker.name}} tente d'empoigner {{defender.name}}
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
<span class='chat-card-button-area'>
|
||||
<br>
|
||||
<strong>{{attacker.name}} tente d'empoigner {{defender.name}}, qui est équipé d'une arme de mêlée. {{defender.name}}
|
||||
@@ -16,4 +15,4 @@
|
||||
Poursuivre l'empoignade
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</p>
|
@@ -1,15 +1,14 @@
|
||||
<img class="chat-icon" src="{{herbe.img}}" data-tooltip="fabrication" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{herbe.img}}" data-tooltip="fabrication" />
|
||||
{{alias}} a fabriqué une potion de {{herbe.system.categorie}} de {{herbe.name}}, avec {{herbe.nbBrins}} brins.
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#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>
|
||||
<div>
|
||||
</p>
|
||||
<p>
|
||||
Pensez à mettre la potion dans une fiole !
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,7 +1,15 @@
|
||||
<div>
|
||||
<span {{#if ajustements}}class="tooltip tooltip-dotted" {{/if}}>
|
||||
{{rolled.caracValue}} à {{plusMoins rolled.finalLevel}}
|
||||
{{#if ajustements}}
|
||||
<span {{#if ajustements}}class="tooltip-overflow tooltip-dotted" {{/if}}>
|
||||
<span>
|
||||
<span>{{rolled.caracValue}} à {{plusMoins rolled.finalLevel}}</span>
|
||||
{{#if ajustements}}
|
||||
{{/if}}
|
||||
{{#if rolled.factorHtml}}<span class="rdd-diviseur">×{{{rolled.factorHtml}}}</span>{{/if}}
|
||||
<span>= {{rolled.score}}%</span>
|
||||
{{#if rolled.factorHtml}}
|
||||
<span class="rdd-diviseur">×{{{rolled.factorHtml}}}</span>
|
||||
{{/if}}
|
||||
</span>
|
||||
<div class="tooltiptext ttt-ajustements">
|
||||
{{#each ajustements as |item key|}}
|
||||
{{#if item.used}}
|
||||
@@ -15,13 +23,7 @@
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if rolled.factorHtml}}<span class="rdd-diviseur">×{{{rolled.factorHtml}}}</span>{{/if}}
|
||||
</span>
|
||||
<span>= {{rolled.score}}%</span>
|
||||
{{#if rolled.factorHtml}}
|
||||
<span class="rdd-diviseur">×{{{rolled.factorHtml}}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div>
|
||||
<span>{{rolled.roll}} : </span><span class="rdd-roll-{{rolled.code}} strong-text">{{rolled.quality}}</span>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<img class="chat-icon" src="{{sortReserve.img}}" data-tooltip="{{sortReserve.name}}"/>
|
||||
<h4>Déclenchement de sort: {{sortReserve.name}}</h4>
|
||||
<h4><img class="chat-icon" src="{{sortReserve.img}}" data-tooltip="{{sortReserve.name}}"/>
|
||||
Déclenchement de sort: {{sortReserve.name}}</h4>
|
||||
<br> Vous avez déclenché {{#if sortReserve.system.echectotal}}<strong>l'échec total</strong>{{else}}le sort{{/if}}
|
||||
en réserve en {{sortReserve.system.coord}} ({{caseTmr-label sortReserve.system.coord}}).
|
||||
<br>Ce sort a {{sortReserve.system.ptreve}} points de Rêve
|
||||
@@ -7,7 +7,7 @@ en réserve en {{sortReserve.system.coord}} ({{caseTmr-label sortReserve.system.
|
||||
{{timestamp-imgSigneHeure sortReserve.system.heurecible}} {{sortReserve.system.heurecible}}
|
||||
{{else}}indéterminée{{/if}}
|
||||
{{#if sort}}
|
||||
<div class="poesie-extrait poesie-overflow">
|
||||
<p class="poesie-extrait poesie-overflow">
|
||||
{{{sort.system.description}}}
|
||||
</div>
|
||||
</p>
|
||||
{{/if}}
|
||||
|
@@ -1,9 +1,8 @@
|
||||
<img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
La {{item.type}} enchantée {{item.name}} de {{alias}} a perdu un Point de Rêve (nouveau total : {{nouveaupr}}).</h4>
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if (and (eq item.type 'potion') (eq nouveaupr 0))}}
|
||||
Sa {{item.type}} étant désormais à 0 Point de Rêve, elle est inutilisable et peut être jetée.
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}"/>
|
||||
<h4 data-categorie="tmr" data-actor-id="{{actor._id}}" data-rencontre-round="{{nbRounds}}">
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}"/>
|
||||
{{alias}} rencontre {{#if (eq rencontre.system.genre 'f')}}une{{else}}un{{/if}} {{rencontre.name}} de force {{rencontre.system.force}}
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
|
@@ -3,8 +3,8 @@
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>{{#if rolled.isSuccess}}
|
||||
<p>{{#if rolled.isSuccess}}
|
||||
{{alias}} s'est accordé à {{entite}}
|
||||
{{else}}ne s'est pas accordé à {{entite}}, il pourra réessayer à sa prochaine attaque.
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,14 +1,13 @@
|
||||
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/competence_alchimie.webp" data-tooltip="préparation alchimique" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/competence_alchimie.webp" data-tooltip="préparation alchimique" />
|
||||
{{alias}} essaye de réaliser sa recette Alchimique : {{recette.name}}
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if rolled.isSuccess}}
|
||||
{{alias}} a réussi son opération alchimique ! Il/Elle peut passer à l'étape suivante de sa recette.
|
||||
{{else}}
|
||||
{{alias}} a raté son opération alchimique ! Sa recette est un echec.
|
||||
{{/if}}
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -4,5 +4,5 @@
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
{{~#if rolled.isSuccess}}
|
||||
<hr>
|
||||
<span>Un point de chance est dépensé, l'action peut être retentée!</span>
|
||||
<p>Un point de chance est dépensé, l'action peut être retentée!</p>
|
||||
{{/if}}
|
||||
|
@@ -1,10 +1,10 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
<h4>{{alias}} attaque à {{diffLibre}}: {{arme.name}}</h4>
|
||||
<div>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</div>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
{{alias}} attaque à {{diffLibre}}: {{arme.name}}</h4>
|
||||
<p>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</p>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
{{#if tactique}}
|
||||
<div>
|
||||
<p>
|
||||
{{#if (eq tactique 'charge')}}
|
||||
<img class="chat-icon" src="icons/svg/thrust.svg" data-tooltip="charge" height="32" width="32" />
|
||||
C'est une charge, vos parades auront un -4 et vous ne pourrez pas esquiver!
|
||||
@@ -14,9 +14,9 @@
|
||||
Votre feinte peut faire mouche!
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
||||
{{/if}}
|
||||
<div>
|
||||
<p>
|
||||
{{#if rolled.isSuccess}}
|
||||
<span><strong>{{show.cible}}</strong> doit se défendre à <strong>{{diffLibre}}</strong>, ou encaisser à
|
||||
{{~#if (eq dmg.mortalite 'non-mortel')}}
|
||||
@@ -37,4 +37,4 @@
|
||||
<span>Votre attaque a échoué!</span>
|
||||
{{/if}}
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
</div>
|
||||
</p>
|
@@ -1,15 +1,14 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
{{alias}} {{#if rolled.isSuccess}}chante{{else}}tente de chanter{{/if}} {{oeuvre.name}} (niveau {{oeuvre.system.niveau}})
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if rolled.isSuccess}}
|
||||
{{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} .
|
||||
{{else}}
|
||||
{{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}.
|
||||
{{/if}}
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
</div>
|
||||
</p>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-description.hbs" oeuvre.system}}
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
{{alias}} {{show.title}}:
|
||||
{{#if selectedCarac}}{{selectedCarac.label}}
|
||||
{{#if competence}}
|
||||
@@ -9,12 +8,12 @@
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
<span>{{#if rolled.ptTache}}{{rolled.ptTache}} points de tâche{{/if}}{{#if rolled.ptQualite}}{{#if rolled.ptTache}},{{/if}} Qualité ajustée de {{rolled.ptQualite}}{{/if}}</span>
|
||||
</div>
|
||||
</p>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
{{~#if show.explications}}
|
||||
<div>
|
||||
<p>
|
||||
{{show.explications}}
|
||||
</div>
|
||||
</p>
|
||||
{{/if}}
|
||||
|
@@ -1,15 +1,14 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
{{alias}} {{#if rolled.isSuccess}}danse{{else}}tente de danser{{/if}} {{oeuvre.name}} (niveau {{oeuvre.system.niveau}})
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if rolled.isSuccess}}
|
||||
{{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} .
|
||||
{{else}}
|
||||
{{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}.
|
||||
{{/if}}
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
</div>
|
||||
</p>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-description.hbs" oeuvre.system}}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
<h4>{{alias}} esquive une attaque à {{diffLibre}}</h4>
|
||||
<div>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</div>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
{{alias}} esquive une attaque à {{diffLibre}}</h4>
|
||||
<p>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</p>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if rolled.isSuccess}}
|
||||
<span>Attaque esquivée!</span>
|
||||
{{#if rolled.isPart}}
|
||||
@@ -14,10 +14,10 @@
|
||||
<span>L'esquive de {{alias}} a échoué!</span>
|
||||
{{/if}}
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
</div>
|
||||
</p>
|
||||
|
||||
{{#if attackerRoll.tactique}}
|
||||
<div>
|
||||
<p>
|
||||
{{#if (eq attackerRoll.tactique 'charge')}}
|
||||
<img class="chat-icon" src="icons/svg/thrust.svg" data-tooltip="charge" height="32" width="32" />
|
||||
C'était une charge, les parades de l'adversaire de {{alias}} auront un -4 et il ne pourra pas esquiver!
|
||||
@@ -25,5 +25,5 @@
|
||||
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/heures/hd06.svg" data-tooltip="feinte" height="32" width="32" />
|
||||
C'était une feinte!
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
||||
{{/if}}
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/objets/chope_gres.webp" data-tooltip="Ethylisme" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/objets/chope_gres.webp" data-tooltip="Ethylisme" />
|
||||
{{alias}} boit un verre d'alcool de force {{jetVie.forceAlcool}}
|
||||
{{#if alcool}}
|
||||
<br>{{alcool.name}}
|
||||
|
@@ -1,7 +1,5 @@
|
||||
{{#if competence.img}}
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
{{/if}}
|
||||
<h4>
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
{{alias}} {{#if show.title}}{{show.title}}: {{/if}}
|
||||
{{#if selectedCarac}}{{selectedCarac.label}}
|
||||
{{#if competence}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}{{/if}}
|
||||
|
@@ -1,15 +1,14 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
{{alias}} joue à : {{oeuvre.name}}
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if rolled.isSuccess}}
|
||||
{{alias}} a gagné la partie !
|
||||
{{else}}
|
||||
{{alias}} a perdu ...
|
||||
{{/if}}
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
</div>
|
||||
</p>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-description.hbs" oeuvre.system}}
|
||||
|
@@ -1,11 +1,11 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
<h4>{{alias}} lit le signe {{signe.name}}</h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
{{alias}} lit le signe {{signe.name}}</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if rolled.isSuccess}}
|
||||
{{alias}} a gagné {{xpSort}} points d'expérience en sorts en {{competence.name}}.
|
||||
{{else}}
|
||||
{{alias}} n'a pas pu interpréter le signe draconique.
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}"/>
|
||||
<h4 data-categorie="tmr" data-actor-id="{{actor._id}}">
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}"/>
|
||||
{{alias}} tente de {{maitrise.verbe}} {{grammar-le tmr.genre}}
|
||||
{{#if isTMRCache}}
|
||||
{{caseTmr-type tmr.coord}}
|
||||
|
@@ -1,10 +1,9 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
{{alias}} a médité : {{meditation.name}}
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if rolled.isSuccess}}
|
||||
{{alias}} aperçoit un signe draconique éphémère, qu'il faut aller lire en <strong>{{typeTmr-name meditation.system.tmr}}</strong>.
|
||||
{{else}}
|
||||
@@ -12,4 +11,4 @@
|
||||
{{/if}}
|
||||
<br><span>{{alias}} s'est fatigué de 2 cases.</span>
|
||||
{{#if rolled.isEPart}}<br><span>Son échec {{#if rolled.isETotal}}total{{else}}particulier{{/if}} augmente de 1 la difficulté de la méditation!</span>{{/if~}}
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,9 +1,9 @@
|
||||
<img class="chat-icon" src="icons/svg/lightning.svg" data-tooltip="Météo" />
|
||||
<h4>Météo aléatoire</h4>
|
||||
<h4><img class="chat-icon" src="icons/svg/lightning.svg" data-tooltip="Météo" />
|
||||
Météo aléatoire</h4>
|
||||
<ul>
|
||||
<li>Vent: {{lowerFirst vent.description}} {{grammar-apostrophe 'de' vent.direction}}, force {{vent.force}}</li>
|
||||
<li>Mer {{lowerFirst mer.description}}, {{grammar-apostrophe 'de' mer.direction}}, force {{mer.force}}</li>
|
||||
<li>Température {{lowerFirst temperature.description}} ({{plusMoins temperature.force}})</li>
|
||||
<li>Couverture nuageuse: {{lowerFirst nuage.description}}</li>
|
||||
<li>Pluie: {{lowerFirst pluie.description}}</li>
|
||||
</div>
|
||||
</ul>
|
||||
|
@@ -1,15 +1,14 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
{{alias}} {{#if rolled.isSuccess}}interprete{{else}}tente de jouer{{/if}} le morceau : {{oeuvre.name}} (niveau {{oeuvre.system.niveau}})
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if rolled.isSuccess}}
|
||||
{{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} .
|
||||
{{else}}
|
||||
{{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}.
|
||||
{{/if}}
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
</div>
|
||||
</p>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-description.hbs" oeuvre.system}}
|
||||
|
@@ -1,16 +1,15 @@
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
|
||||
{{alias}} tente d'interpréter {{oeuvre.name}} (niveau {{oeuvre.system.niveau}})
|
||||
</h4>
|
||||
<br>{{upperFirst oeuvre.system.default_carac}} / {{oeuvre.system.competence}}
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{#if rolled.isSuccess}}
|
||||
{{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} .
|
||||
{{else}}
|
||||
{{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}.
|
||||
{{/if}}
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
</div>
|
||||
</p>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-description.hbs" oeuvre.system}}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
<h4>{{alias}} pare une attaque à {{diffLibre}} - {{arme.name}}</h4>
|
||||
<div>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</div>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
{{alias}} pare une attaque à {{diffLibre}} - {{arme.name}}</h4>
|
||||
<p>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</p>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
<span>
|
||||
{{#if rolled.isSuccess}}
|
||||
Attaque parée!
|
||||
@@ -13,27 +13,27 @@
|
||||
{{/if}}
|
||||
</span>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
</div>
|
||||
</p>
|
||||
|
||||
{{#if (eq show.recul 'encaisse')}}<div>{{alias}} ne recule pas malgré la violence du coup.</div>
|
||||
{{else if (eq show.recul 'chute')}}<div>Sous la violence du coup, {{alias}} recule et chute au sol ! Il/elle ne pourra plus attaquer ce round.</div>
|
||||
{{else if (eq show.recul 'recul')}}<div>La violence du coup fait reculer {{alias}} de quelques mètres ! Il/elle ne pourra plus attaquer ce round.</div>
|
||||
{{#if (eq show.recul 'encaisse')}}<p>{{alias}} ne recule pas malgré la violence du coup.</p>
|
||||
{{else if (eq show.recul 'chute')}}<p>Sous la violence du coup, {{alias}} recule et chute au sol ! Il/elle ne pourra plus attaquer ce round.</p>
|
||||
{{else if (eq show.recul 'recul')}}<p>La violence du coup fait reculer {{alias}} de quelques mètres ! Il/elle ne pourra plus attaquer ce round.</p>
|
||||
{{/if}}
|
||||
|
||||
{{#if (eq show.deteriorationArme 'resiste')}}
|
||||
<div>L'arme résiste au choc de la parade.</div>
|
||||
<p>L'arme résiste au choc de la parade.</p>
|
||||
{{else if (eq show.deteriorationArme 'brise')}}
|
||||
<div>Sous la violence de la parade, {{arme.name}} s'est brisée!</div>
|
||||
<p>Sous la violence de la parade, {{arme.name}} s'est brisée!</p>
|
||||
{{else if (eq show.deteriorationArme 'perte')}}
|
||||
<div>En parant, l'arme perd {{show.perteResistance}} de résistance.</div>
|
||||
<p>En parant, l'arme perd {{show.perteResistance}} de résistance.</p>
|
||||
{{/if}}
|
||||
|
||||
{{#if show.desarme}}
|
||||
<div>Le défenseur {{alias}} lâche son arme qui tombe à ses pieds.</div>
|
||||
<p>Le défenseur {{alias}} lâche son arme qui tombe à ses pieds.</p>
|
||||
{{/if}}
|
||||
|
||||
{{#if attackerRoll.tactique}}
|
||||
<div>
|
||||
<p>
|
||||
{{#if (eq attackerRoll.tactique 'charge')}}
|
||||
<img class="chat-icon" src="icons/svg/thrust.svg" data-tooltip="charge" />
|
||||
C'était une charge, les parades de l'adversaire auront un -4 et il ne pourra pas esquiver!
|
||||
@@ -42,5 +42,5 @@
|
||||
width="32" />
|
||||
C'était une feinte!
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
||||
{{/if}}
|
@@ -1,5 +1,4 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" />
|
||||
{{#if (eq mode "attaque")}}
|
||||
{{attacker.name}} tente de {{#if isECNIDefender}}conjurer la possession de{{else}}posséder{{/if}} {{defender.name}}
|
||||
{{else}}
|
||||
@@ -9,7 +8,7 @@
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
<span class='chat-card-button-area'>
|
||||
<br>
|
||||
{{#if (eq mode "attaque")}}
|
||||
@@ -44,4 +43,4 @@
|
||||
{{#if possession.isConjurer}}
|
||||
<br><strong>Vous avez conjuré {{possession.system.typepossession}} ! La possession en cours a été supprimée.</strong>
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
|
||||
{{alias}} {{#if rolled.isSuccess}}réalise{{else}}tente de cuisiner{{/if}} la recette : {{oeuvre.name}} (niveau {{oeuvre.system.niveau}})
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/competence_legendes.webp" data-tooltip="Rêve de Dragon"/>
|
||||
<h4 data-categorie="tmr" data-actor-id="{{actor._id}}">
|
||||
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/competence_legendes.webp" data-tooltip="Rêve de Dragon"/>
|
||||
{{alias}} tente de maîtriser un Rêve de Dragon!
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
|
@@ -1,17 +1,16 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
{{alias}} {{#if isSortReserve}}met en réserve{{else}}lance{{/if}}
|
||||
le {{#if selectedSort.system.isrituel}}rituel{{else}}sort{{/if}}
|
||||
{{selectedSort.name}}
|
||||
</h4>
|
||||
<div>Pour {{selectedSort.system.ptreve_reel}} point{{~#if (gt selectedSort.system.ptreve_reel 1)}}s{{/if}} de rêve en {{tmr.label}} ({{tmr.coord}}).
|
||||
<p>Pour {{selectedSort.system.ptreve_reel}} point{{~#if (gt selectedSort.system.ptreve_reel 1)}}s{{/if}} de rêve en {{tmr.label}} ({{tmr.coord}}).
|
||||
{{#if show.reveInsuffisant}}
|
||||
<span>Pas assez de rêve!</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</p>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
<span>
|
||||
{{#if rolled.isETotal}}Echec TOTAL
|
||||
{{else if rolled.isEchec}}Echec
|
||||
@@ -22,8 +21,8 @@
|
||||
{{else}}{{depenseReve}} points de rêve ont été dépensés
|
||||
{{~/if}}.
|
||||
</span>
|
||||
</div>
|
||||
</p>
|
||||
<hr>
|
||||
<div class="poesie-extrait poesie-overflow">
|
||||
<p class="poesie-extrait poesie-overflow">
|
||||
{{{selectedSort.system.description}}}
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,11 +1,10 @@
|
||||
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
<h4>
|
||||
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
|
||||
{{alias}} travaille à sa tâche {{tache.name}}
|
||||
<br>{{selectedCarac.label}}/{{competence.name}}
|
||||
</h4>
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
|
||||
<hr>
|
||||
<div>
|
||||
<p>
|
||||
{{alias}} a obtenu {{rolled.ptTache}} point{{~#unless (eq rolled.ptTache 1)}}s{{/unless}} de tâche,
|
||||
son avancement est de
|
||||
<span class="rdd-roll-{{#if (gt tache.system.points_de_tache_courant 0)}}norm{{else}}etotal{{/if}}">{{tache.system.points_de_tache_courant}}
|
||||
@@ -15,4 +14,4 @@
|
||||
{{#if (and tache.system.fatigue appliquerFatigue)}}<br><span>Il s'est fatigué de {{tache.system.fatigue}} case{{~#if (gt tache.system.fatigue 1)}}s{{/if}}.</span>{{/if}}
|
||||
{{#if rolled.isETotal}}<br><span>Son échec total augmente de 1 la difficulté de la tâche!</span>{{/if~}}
|
||||
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
|
||||
</div>
|
||||
</p>
|
||||
|
@@ -1,10 +1,10 @@
|
||||
{{log 'chat-vente-item' this}}
|
||||
<div class="post-item" data-transfer="{{transfer}}">
|
||||
<h3>{{#if alias}}{{alias}} propose: {{else}}Acheter {{/if}}{{item.name}}</h3>
|
||||
{{#if item.img}}
|
||||
<img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
{{/if}}
|
||||
<div class="poesie-extrait poesie-overflow card-content">{{{item.system.description}}}</div>
|
||||
<h4>
|
||||
{{#if item.img}}
|
||||
<img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
||||
{{/if}}
|
||||
{{#if alias}}{{alias}} propose: {{else}}Acheter {{/if}}{{item.name}}</h4>
|
||||
<p class="poesie-extrait poesie-overflow card-content">{{{item.system.description}}}</p>
|
||||
<p>
|
||||
{{#each properties as |property p|}}
|
||||
<span>{{{property}}}</span><br>
|
||||
|
@@ -24,20 +24,18 @@
|
||||
<div class="flex-group-center flex-shrink">
|
||||
<h4>Le gardien gére les TMR du joueur, le joueur ne peut pas monter dans les TMR!</h4>
|
||||
</div>
|
||||
<hr>
|
||||
{{/if}}
|
||||
<div class="flex-group-center flex-shrink">
|
||||
<img class="small-button-direction tmr-move" data-move="topleft" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-topleft.svg">
|
||||
<img class="small-button-direction tmr-move" data-move="top" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-top.svg">
|
||||
<img class="small-button-direction tmr-move" data-move="topright" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-topright.svg">
|
||||
</div>
|
||||
<div class="flex-group-center flex-shrink">
|
||||
<label>Coordonnées : </label><span id="tmr-pos">0</span>
|
||||
</div>
|
||||
<div class="flex-group-center flex-shrink">
|
||||
<img class="small-button-direction tmr-move" data-move="bottomleft" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-bottomleft.svg">
|
||||
<img class="small-button-direction tmr-move" data-move="bottom" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-bottom.svg">
|
||||
<img class="small-button-direction tmr-move" data-move="bottomright" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-bottomright.svg">
|
||||
<label class="flex-group-center" >Coordonnées : <span id="tmr-pos">0</span> </label>
|
||||
<div class="grid-move-tmr">
|
||||
<img class="move-tmr-topleft tmr-move" data-move="topleft" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-topleft.svg">
|
||||
<img class="move-tmr-top tmr-move" data-move="top" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-top.svg">
|
||||
<img class="move-tmr-topright tmr-move" data-move="topright" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-topright.svg">
|
||||
<img class="move-tmr-bottomleft tmr-move" data-move="bottomleft" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-bottomleft.svg">
|
||||
<img class="move-tmr-bottom tmr-move" data-move="bottom" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-bottom.svg">
|
||||
<img class="move-tmr-bottomright tmr-move" data-move="bottomright" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-bottomright.svg">
|
||||
</div>
|
||||
<hr>
|
||||
<div class="flex-group-center flex-shrink lire-signe-draconique">
|
||||
<a>Lire un signe draconique</a>
|
||||
</div>
|
||||
|
@@ -1,18 +1,32 @@
|
||||
<div class="calendar-horloge">
|
||||
{{#if isGM}}
|
||||
<div class="calendar-boutons-heure">
|
||||
<i class="calendar-btn calendar-1min" data-calendar-avance="1" data-tooltip="Avancer de 1 minute">+1</i>
|
||||
<i class="calendar-btn calendar-5min" data-calendar-avance="5" data-tooltip="Avancer de 5 minutes">+5</i>
|
||||
<i class="calendar-btn calendar-15min" data-calendar-avance="15" data-tooltip="Avancer de 15 minutes">+15</i>
|
||||
<i class="calendar-btn calendar-30min" data-calendar-avance="30" data-tooltip="Avancer de 30 minutes">+30</i>
|
||||
<i class="calendar-btn calendar-60min" data-calendar-avance="60" data-tooltip="Avancer de 60 minutes" >+60</i>
|
||||
<i class="calendar-btn calendar-1heure" data-calendar-avance="120" data-tooltip="Avancer d'1 heure" >+1h</i>
|
||||
<i class="calendar-btn calendar-lyre fas fa-forward" data-calendar-set="6" data-tooltip="Avancer à Lyre">
|
||||
<img src="systems/foundryvtt-reve-de-dragon/icons/heures/hd07.svg" data-tooltip="Avancer à Lyre"/>
|
||||
</i>
|
||||
<i class="calendar-btn calendar-vaisseau fas fa-forward" data-calendar-set="0" data-tooltip="Avancer au Vaisseau">
|
||||
<img src="systems/foundryvtt-reve-de-dragon/icons/heures/hd01.svg" data-tooltip="Avancer au Vaisseau"/>
|
||||
</i>
|
||||
<a class="calendar-btn calendar-1min" data-calendar-avance="1" data-tooltip="Avancer de 1 minute">
|
||||
<i>+1</i>
|
||||
</a>
|
||||
<a class="calendar-btn calendar-5min" data-calendar-avance="5" data-tooltip="Avancer de 5 minutes">
|
||||
<i>+5</i>
|
||||
</a>
|
||||
<a class="calendar-btn calendar-15min" data-calendar-avance="15" data-tooltip="Avancer de 15 minutes">
|
||||
<i>+15</i>
|
||||
</a>
|
||||
<a class="calendar-btn calendar-30min" data-calendar-avance="30" data-tooltip="Avancer de 30 minutes">
|
||||
<i>+30</i>
|
||||
</a>
|
||||
<a class="calendar-btn calendar-60min" data-calendar-avance="60" data-tooltip="Avancer de 60 minutes">
|
||||
<i>+60</i>
|
||||
</a>
|
||||
<a class="calendar-btn calendar-1heure" data-calendar-avance="120" data-tooltip="Avancer d'1 heure">
|
||||
<i>+1h</i>
|
||||
</a>
|
||||
<a class="calendar-btn calendar-lyre" data-calendar-set="6" data-tooltip="Avancer à Lyre">
|
||||
<i class="fas fa-forward"></i>
|
||||
<img src="systems/foundryvtt-reve-de-dragon/icons/heures/hd07.svg"/>
|
||||
</a>
|
||||
<a class="calendar-btn calendar-vaisseau" data-calendar-set="0" data-tooltip="Avancer au Vaisseau">
|
||||
<i class="fas fa-forward"></i>
|
||||
<img src="systems/foundryvtt-reve-de-dragon/icons/heures/hd01.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="horloge-digitale">
|
||||
|
Reference in New Issue
Block a user