Compare commits

..

30 Commits

Author SHA1 Message Date
1d63cd54fe Merge pull request '13.0.7 - Sous le signe d'Illysis' (#768) from VincentVk/foundryvtt-reve-de-dragon:v13 into v13
All checks were successful
Release Creation / build (release) Successful in 2m23s
Reviewed-on: #768
2025-09-12 20:56:24 +02:00
15e6127e02 Fix effets TMR A0 2025-09-12 18:57:34 +02:00
afd8c2ac80 Migration niveau oeuvres
Passage du niveau à une valeur numérique
2025-09-12 18:56:17 +02:00
18de904849 Affichage des signes d'heure
Présentation en ligne pour fenêtre d'astrologie.
Pourra être utilisée là où on affiche des heures (méditations)
2025-09-12 18:54:47 +02:00
cb48c960c2 appel moral sur double significative
Lors d'un appel au moral avcec un facteur de significative recquis,
vérifier la réussite effective (en utitisant la bnonne fraction du
score) pour déterminer la perte de moral
2025-09-12 18:53:40 +02:00
bd082248d9 Correction de tooltips (v13)
Sur les ajustements, les tooltips sont visibles
2025-09-12 18:52:11 +02:00
df9df90ccb Init premier round 2025-09-12 18:47:41 +02:00
0456221cf7 Merge pull request 'Fix commerces' (#767) from VincentVk/foundryvtt-reve-de-dragon:v13 into v13
All checks were successful
Release Creation / build (release) Successful in 5m16s
Reviewed-on: #767
2025-09-02 00:19:24 +02:00
583b4ff003 Fix commerces 2025-08-24 14:57:01 +02:00
b4ac906802 Merge pull request 'v13.0.6' (#766) from VincentVk/foundryvtt-reve-de-dragon:v13 into v13
Reviewed-on: #766
2025-08-03 23:35:05 +02:00
395c7a4cc3 Fix boutons feuille simplifiée 2025-08-03 22:48:01 +02:00
27bc07f64a Soins depuis les tokens 2025-08-03 22:48:01 +02:00
2f3ec7bab0 Upadte changelog et normalisation markdown 2025-07-17 07:44:58 +02:00
8d39a0526f Export scriptarium OK agfain
All checks were successful
Release Creation / build (release) Successful in 2m29s
2025-07-16 23:37:44 +02:00
f83548b91e Merge pull request 'Suppression de "rêve actuel" des caracs' (#765) from VincentVk/foundryvtt-reve-de-dragon:v13 into v13
All checks were successful
Release Creation / build (release) Successful in 2m6s
Reviewed-on: #765
2025-06-24 22:27:48 +02:00
90d17a3477 Suppression de "rêve actuel" des caracs
Cette ligne était parfois ajoutée aux caracs des personnages.
Ajout d'une migration pour nettoyage.
2025-06-23 22:20:00 +02:00
fb15f3eb38 Merge pull request 'Dimension des éditeurs prosemirror' (#764) from VincentVk/foundryvtt-reve-de-dragon:v13 into v13
Reviewed-on: #764
2025-06-23 16:28:13 +02:00
4df0eab574 Modification des messages de tchat 2025-06-23 02:04:15 +02:00
c8d589f0d2 Macro jet quelconque 2025-06-23 01:36:18 +02:00
d7470836a5 Boutons de déplacement dans les TMR 2025-06-23 01:35:55 +02:00
817fa8e62a Boutons de l'horloge 2025-06-22 23:55:08 +02:00
0fe4f64343 Ne pas proposer l'export csv par défaut 2025-06-22 16:43:27 +02:00
d6b5b0a550 Dimension des éditeurs prosemirror 2025-06-21 20:42:25 +02:00
c9d87851bd Merge pull request 'Corrections less/css v13' (#763) from VincentVk/foundryvtt-reve-de-dragon:v13 into v13
All checks were successful
Release Creation / build (release) Successful in 2m17s
Reviewed-on: #763
2025-06-10 20:45:15 +02:00
5b48fda3d0 Correction d'affichages lignes
Correction de plusieurs cas d'affichage en lignes qui étaient formatés
sur plusieurs lignes

- noms dans liste d'objets (et bouton des conteneurs)
- compétences de créatures sur une ligne
- acteur sur une ligne dans l'astrologie
- résultat de recherche
2025-06-10 01:22:25 +02:00
abae85157b Merge pull request 'v13' (#762) from VincentVk/foundryvtt-reve-de-dragon:v13 into v13
Reviewed-on: #762
2025-06-06 20:42:17 +02:00
da2dca1769 Fix: espaces description Grizzal 2025-06-06 00:35:41 +02:00
6e405ea753 Fix: on peut de nouveau acheter aux commerces 2025-06-06 00:34:58 +02:00
a96f4bf641 Fix templates for new appv2
All checks were successful
Release Creation / build (release) Successful in 1m34s
2025-06-02 23:33:41 +02:00
a0f42204d5 Fix templates for new appv2
All checks were successful
Release Creation / build (release) Successful in 2m31s
2025-06-02 23:25:49 +02:00
101 changed files with 1198 additions and 655 deletions

View File

@@ -64,13 +64,13 @@ jobs:
system.json system.json
api_key: '${{secrets.ALLOW_PUSH_RELEASE}}' api_key: '${{secrets.ALLOW_PUSH_RELEASE}}'
#- name: Publish to Foundry server - name: Publish to Foundry server
# uses: djlechuck/foundryvtt-publish-package-action@v1 uses: djlechuck/foundryvtt-publish-package-action@v1
# with: with:
# token: ${{ secrets.FOUNDRYVTT_RELEASE_TOKEN }} token: ${{ secrets.FOUNDRYVTT_RELEASE_TOKEN }}
# id: 'foundryvtt-reve-de-dragon' id: 'foundryvtt-reve-de-dragon'
# version: ${{github.event.release.tag_name}} version: ${{github.event.release.tag_name}}
# manifest: 'https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/system.json' manifest: 'https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/system.json'
# notes: 'https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v13/changelog.md' notes: 'https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v13/changelog.md'
# compatibility-minimum: '13' compatibility-minimum: '13'
# compatibility-verified: '13' compatibility-verified: '13'

View File

@@ -1,21 +1,65 @@
# 13.0 # 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
- On peut de nouveau acheter aux commerces
- La description des Grizzal a des espaces
- Corrections v13
- Affichage des images et noms d'objets en ligne
- affichage des compétences de créature sur une ligne
- Affichage des informations d'acteur sur une ligne dans l'astrologie
- Affichage des résultat de recherche
## 13.0.0 - Le début de l'errance d'Illysis ## 13.0.0 - Le début de l'errance d'Illysis
- Migration vers la version 13 de Foundry - Migration vers la version 13 de Foundry
# 12.0 # 12.0
## 12.0.50 - Le sommeil d'Astrobazzarh ## 12.0.50 - Le sommeil d'Astrobazzarh
- Le don de double rêve n'interrompt plus le sommeil toutes les heures - 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 - la perte de fatigue à la descente des TMR est visible immédiatement
## 12.0.49 - La deuxième lame d'Astrobazzarh ## 12.0.49 - La deuxième lame d'Astrobazzarh
- Corrections - Corrections
- les défenses particulières sont correctement affichées - 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 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 - Les attaques à distance n'ont pas de difficulté libre
## 12.0.48 - La chèvre d'Astrobazzarh ## 12.0.48 - La chèvre d'Astrobazzarh
- le Bandersnatch a une protection de 10 - le Bandersnatch a une protection de 10
- la consistance chèvre est maintenant possible dans les recettes - la consistance chèvre est maintenant possible dans les recettes
alchimiques (et toutes les consistances avec accents) alchimiques (et toutes les consistances avec accents)
@@ -24,10 +68,12 @@
- Correction: les réussites particulières fonctionnent avec les caractéristiques dérivées - Correction: les réussites particulières fonctionnent avec les caractéristiques dérivées
## 12.0.47 ## 12.0.47
- Correction sur les mise à jour en cascade - - Correction sur les mise à jour en cascade -
- Correction sur le force rendering après un changement de competence - Correction sur le force rendering après un changement de competence
## 12.0.46 - Le double demi d'Astrobazzarh ## 12.0.46 - Le double demi d'Astrobazzarh
- correction des raffraîchissement lors du sommeil qui empêchait de dormir - correction des raffraîchissement lors du sommeil qui empêchait de dormir
plusieurs heures 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) - Si la fatigue n'est pas utilisée, les rounds dans les TMR font perdre de l'endurance (au lieu d'en gagner)
@@ -54,18 +100,22 @@
- Correction des jets `@roll[vue/-2]` qui tentaient de chercher une compétence -2 (à cause des armes à 1/2 mains) - 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 ## 12.0.41 - La loupe d'Astrobazzarh
- On peut de nouveau effectuer des tirages cachés - On peut de nouveau effectuer des tirages cachés
- Le stress transformé est bien diminué lorsqu'on met le stress dans une compétence - Le stress transformé est bien diminué lorsqu'on met le stress dans une compétence
## 12.0.40 - Les mains d'Astrobazzarh ## 12.0.40 - Les mains d'Astrobazzarh
- correction des attaques particulières en combat - 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) - 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 ## 12.0.39 - Les mains d'Astrobazzarh
- les armes à 1 ou 2 mains fonctionnent dans les liens de jets de dés - 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 - commande `/jet` pour poster une demande de jet de dés
## 12.0.38 - Les prévisions d'Astrobazzarh ## 12.0.38 - Les prévisions d'Astrobazzarh
- Correction de modifications de personnages qui ne s'affichaient pas: - Correction de modifications de personnages qui ne s'affichaient pas:
- changements d'endurance/vie/fatigue, transformé, ... - changements d'endurance/vie/fatigue, transformé, ...
- Migration des compétences "Ecriture" en "Écriture" dans les tâches, livres, oeuvres et méditations - Migration des compétences "Ecriture" en "Écriture" dans les tâches, livres, oeuvres et méditations
@@ -75,12 +125,14 @@
- utilisation de l'extension hbs pour tous les fichiers handlebars - utilisation de l'extension hbs pour tous les fichiers handlebars
## 12.0.37 - Les enchantements d'Astrobazzarh ## 12.0.37 - Les enchantements d'Astrobazzarh
- les potions ont un état, seules les potions liquides sont enchantables - les potions ont un état, seules les potions liquides sont enchantables
- les lancements de sorts du jour sont conservés jusqu'à chateau dormant - 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 - 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 - on peut enchanter des gemmes exactement comme des potions
## 12.0.36 - L'alchimie d'Astrobazzarh ## 12.0.36 - L'alchimie d'Astrobazzarh
- Nouveautés - Nouveautés
- ajout d'un bouton pour enchanter les potions - ajout d'un bouton pour enchanter les potions
- standardisation des boutons d'actions sur les items - standardisation des boutons d'actions sur les items
@@ -95,9 +147,11 @@
- Corrections de descriptions pour proposer les jet de dés - Corrections de descriptions pour proposer les jet de dés
## 12.0.35 - La Solution d'Astrobazzarh ## 12.0.35 - La Solution d'Astrobazzarh
- Fix problème d'initialisation des feuilles d'items - Fix problème d'initialisation des feuilles d'items
## 12.0.34 - la tête d'Astrobazzarh ## 12.0.34 - la tête d'Astrobazzarh
- support de liens "jets de dés" - support de liens "jets de dés"
- on peut ajouter des liens "jet de dés" dans les journaux, descriptions, notes, maladresses, ... - 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: - avec la syntaxe `@roll[...]` on peut ajouter le lien vers:
@@ -112,28 +166,35 @@
- gestion des blocs secrets dans les descriptions - gestion des blocs secrets dans les descriptions
## 12.0.33 - la vieillesse d'Astrobazzarh ## 12.0.33 - la vieillesse d'Astrobazzarh
- retour de l'expérience pour les joueurs - retour de l'expérience pour les joueurs
- suppression du message "Pas de caractéristique" sur les jets d'odorat-goût - suppression du message "Pas de caractéristique" sur les jets d'odorat-goût
## 12.0.32 - les rêveries d'Astrobazzarh ## 12.0.32 - les rêveries d'Astrobazzarh
- Ajout des Items Race pour gérer les ajustements liés aux races - Ajout des Items Race pour gérer les ajustements liés aux races
## 12.0.31 - le mausolée d'Astrobazzarh ## 12.0.31 - le mausolée d'Astrobazzarh
- Correction: les automatisation de combat jouer-MJ fonctionnentde nouveau - Correction: les automatisation de combat jouer-MJ fonctionnentde nouveau
## 12.0.30 - le cauchemar d'Astrobazzarh ## 12.0.30 - le cauchemar d'Astrobazzarh
- calcul automatique du niveau des entités selon leur rêve - calcul automatique du niveau des entités selon leur rêve
- la description des créatures venimeuses contient un lien vers leur venin - 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) - Correction: les messages de combats ne marchaient plus (Changement combiné Foundry + rêve de Dragon)
## 12.0.29 - L'indexation d'Astrobazzarh ## 12.0.29 - L'indexation d'Astrobazzarh
- les liens dans la descriptions des sorts pointent vers les sorts du compendium - 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 - la description du chrasme contient le lien vers son venin plutôt qu'un tableau
## 12.0.28 - Les réserves d'Astrobazzarh ## 12.0.28 - Les réserves d'Astrobazzarh
- possibilité de mettre en réserve depuis un sort connu - possibilité de mettre en réserve depuis un sort connu
## 12.0.27 - Les vêtements d'Astrobazzarh ## 12.0.27 - Les vêtements d'Astrobazzarh
- Ajout de la liste des armures dans l'onglet caractéristiques - Ajout de la liste des armures dans l'onglet caractéristiques
- Ajout d'une option pour choisir une carte des TMR alternatives - 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 - Le Gardien peut créer des sorts en réserve parmi les sorts d'un personnage
@@ -154,12 +215,14 @@
- les modèles de personnages non joueurs sont non-liés par défaut - les modèles de personnages non joueurs sont non-liés par défaut
## 12.0.26 - Astrobazzarh le Haut-rêvant ## 12.0.26 - Astrobazzarh le Haut-rêvant
- bouton pour le don de haut-rêve en un clic - 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" - les compétences de draconic ne sont plus précédées de "Voie de"
- migration des compétences & compendiums - migration des compétences & compendiums
- Correction feuille simplifiée qui ne s'affichait pas en cas de sort variable - Correction feuille simplifiée qui ne s'affichait pas en cas de sort variable
## 12.0.24 - Les ajustements d'Astrobazzarh ## 12.0.24 - Les ajustements d'Astrobazzarh
- amélioration - amélioration
- meilleure gestion des noms des voies de draconic - 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 - affichage du détail des sorts avec le nom de voie, 'court', la difficulté, le coût
@@ -169,6 +232,7 @@
- on peut maintenant saisir et supprimer les bonus de cases de manière intuitive - on peut maintenant saisir et supprimer les bonus de cases de manière intuitive
## 12.0.23 - La bibliothèque d'Astrobazzarh ## 12.0.23 - La bibliothèque d'Astrobazzarh
- corrections mineures - corrections mineures
- meilleure gestion de la parade des armes naturelles - meilleure gestion de la parade des armes naturelles
- cas de "User lacks permission to update" pour les blessures et les StatusEffects - cas de "User lacks permission to update" pour les blessures et les StatusEffects
@@ -184,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é. - 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 ## 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 - 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 - Fix: le choix des effets dans les options s'affiche correctement
## 12.0.20 - Le tableau d'Astrobazzarh ## 12.0.20 - Le tableau d'Astrobazzarh
- Ecran d'accueil officiel Scriptarium - Ecran d'accueil officiel Scriptarium
## 12.0.19 - La témérité d'Astrobazzarh ## 12.0.19 - La témérité d'Astrobazzarh
- Fix - Fix
- les défenses des créatures sont correctement filtrées - les défenses des créatures sont correctement filtrées
- le lancer d'initiative pour tous les personnages/PNJs fonctionne correctement - le lancer d'initiative pour tous les personnages/PNJs fonctionne correctement
- les lieux et commerces n'ont pas d'initiative - les lieux et commerces n'ont pas d'initiative
## 12.0.18 - A la barbe d'Astrobazzarh ## 12.0.18 - A la barbe d'Astrobazzarh
- Améliorations sur la feuille de PNJ simplifiée - Améliorations sur la feuille de PNJ simplifiée
- Ajout du portrait - Ajout du portrait
- Ajout du corps à corps - Ajout du corps à corps
@@ -213,11 +281,13 @@
- Ajout d'un indicateur pour les armes de parade nécessitant une significative - Ajout d'un indicateur pour les armes de parade nécessitant une significative
## 12.0.16 - Le secret d'Astrobazzarh ## 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) - 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 - 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 - Ajout d'une option pour la localisation des blessures
## 12.0.15 - Le messager d'Astrobazzarh ## 12.0.15 - Le messager d'Astrobazzarh
- Correction des faces de dés personalisés dice-so-nice - Correction des faces de dés personalisés dice-so-nice
- Les messages de maladies ne sont plus publics - Les messages de maladies ne sont plus publics
- Les messages privés dans les TMR sont aussi envoyés au GM - Les messages privés dans les TMR sont aussi envoyés au GM
@@ -225,6 +295,7 @@
- Amélioration du rendu des tables de compendiums (commande /table) - Amélioration du rendu des tables de compendiums (commande /table)
## 12.0.14 - Les légions d'Astrobazzarh ## 12.0.14 - Les légions d'Astrobazzarh
- Feuille de PNJ: - Feuille de PNJ:
- boutons standard (encaissement, ...) - boutons standard (encaissement, ...)
- boutons pour ajuster les compteurs - boutons pour ajuster les compteurs
@@ -233,15 +304,18 @@
- gestion des armes - gestion des armes
## 12.0.13 - La Chance d'Astrobazzarh ## 12.0.13 - La Chance d'Astrobazzarh
- Fix: jets de caractéristiques - Fix: jets de caractéristiques
## 12.0.12 - L'étalage d'Astrobazzarh ## 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 - 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 - Début de Feuille PNJ au format des encarts Scriptarium
- support des jets de caractéristiques - support des jets de caractéristiques
- support des jets de compétences - support des jets de compétences
## 12.0.11 - Le scriptorium d'Astrobazzarh ## 12.0.11 - Le scriptorium d'Astrobazzarh
- ajout d'un bouton pour générer les éléments de description d'un personnage - 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 du logo en background dans la liste des systèmes Foundry
- ajout d'un champ pour le métier - ajout d'un champ pour le métier
@@ -250,10 +324,12 @@
- export de l'esquive avec armure et sans armure - export de l'esquive avec armure et sans armure
## 12.0.9 - 12.0.10 - Le scriptorium d'Astrobazzarh ## 12.0.9 - 12.0.10 - Le scriptorium d'Astrobazzarh
- corrections de l'export scriptarium - corrections de l'export scriptarium
- ajout d'une fonction avancée pour un exporter "scriptarium" des personnages - ajout d'une fonction avancée pour un exporter "scriptarium" des personnages
## 12.0.8 - La quincaillerie d'Astrobazzarh ## 12.0.8 - La quincaillerie d'Astrobazzarh
- le propriétaire est indiqué dans les feuilles d'équipements/compétences/... - le propriétaire est indiqué dans les feuilles d'équipements/compétences/...
- Ecaille d'efficacité - Ecaille d'efficacité
- l'écaille d'efficacité est prise en compte même si on n'utilise pas le ciblage en combat - l'écaille d'efficacité est prise en compte même si on n'utilise pas le ciblage en combat
@@ -263,6 +339,7 @@
- le tooltip de l'initiative affiche correctement l'initiative - le tooltip de l'initiative affiche correctement l'initiative
## 12.0.7 - La propriété d'Astrobazzarh ## 12.0.7 - La propriété d'Astrobazzarh
- correction des opérations faites à la création d'un Item: - correction des opérations faites à la création d'un Item:
- la durée des queues/rencontres/souffles - la durée des queues/rencontres/souffles
- les effets draconiques d'un souffle/queue - les effets draconiques d'un souffle/queue
@@ -277,6 +354,7 @@
- la commande /voyage affiche maintenant les compétences liées au terrain - la commande /voyage affiche maintenant les compétences liées au terrain
## 12.0.6 - Le bazar d'Astrobazzarh ## 12.0.6 - Le bazar d'Astrobazzarh
- Corrections de l'inventaire en bazar: - Corrections de l'inventaire en bazar:
- un problème pouvait survenir en déplaçant les objets - un problème pouvait survenir en déplaçant les objets
l'inventaire, qui fait qu'un conteneur se retrouve récursivement dans son l'inventaire, qui fait qu'un conteneur se retrouve récursivement dans son
@@ -291,22 +369,26 @@
- Fix: restaurer la compatibilité Foundry 11 - Fix: restaurer la compatibilité Foundry 11
## 12.0.5 - Les mauvais jours d'Astrobazzarh ## 12.0.5 - Les mauvais jours d'Astrobazzarh
- Fix: on peut de nouveau ouvrir l'édition de calendrier - Fix: on peut de nouveau ouvrir l'édition de calendrier
- Fix: on ne peut plus ouvrir plusieurs fenêtres de lancer de sort - Fix: on ne peut plus ouvrir plusieurs fenêtres de lancer de sort
- Fix: Failed to execute 'getComputedStyle' on 'Window' - Fix: Failed to execute 'getComputedStyle' on 'Window'
## 12.0.4 - La plaie d'Astrobazzarh ## 12.0.4 - La plaie d'Astrobazzarh
- **Support V12** - **Support V12**
- Fix: les boutons d'encaissement dans le tchat fonctionnent de nouveau - Fix: les boutons d'encaissement dans le tchat fonctionnent de nouveau
- Fix warnings sur "Die" et AudioHelper - Fix warnings sur "Die" et AudioHelper
## 12.0.3 - L'hémorragie d'Astrobazzarh ## 12.0.3 - L'hémorragie d'Astrobazzarh
- **Support V12** - **Support V12**
- On peut de nouveau ouvrir un acteur blessé après redémarrage du monde - 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 - 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 - Le choix de ne plus afficher les demandes de suppression est bien pris en compte
## 12.0.2 - Les pluies d'Astrobazzarh ## 12.0.2 - Les pluies d'Astrobazzarh
- **Support V12** - **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) - 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 - la fenêtre de calendrier s'ouvre correctement
@@ -321,13 +403,16 @@
- correction d'erreurs intempestives 'User ... lacks permission to update ...' - correction d'erreurs intempestives 'User ... lacks permission to update ...'
# 11.2 # 11.2
## 11.2.21 - Le questionnement d'Akarlikarlikar ## 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 - 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 - 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 - Les effets s'appliquent correctement sur les créatures
- La date et l'heure (draconiques) sont affichées dans les messages du tchat - La date et l'heure (draconiques) sont affichées dans les messages du tchat
## 11.2.20 - Le soulagement d'Akarlikarlikar ## 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 - 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 - 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 - La fenêtre d'astrologie du gardien affiche toutes les heures lues par un personnage
@@ -337,12 +422,15 @@
- Les messages de récupération de rêve en cas de Rêve de Dragon sont clarifiés - 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 ## 11.2.19 - Les hémorroïdes d'Akarlikarlikar
- La validation des jets d'encaissement par le Gardien fonctionne de nouveau - La validation des jets d'encaissement par le Gardien fonctionne de nouveau
## 11.2.18 - Le bourrichon d'Akarlikarlikar ## 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 - 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 ## 11.2.17 - Le cache-oeil d'Akarlikarlikar
- Le titre des fenêtre d'objet affiche de nouveau le type traduit - Le titre des fenêtre d'objet affiche de nouveau le type traduit
- Les tooltips des boutons edit/delete sont maintenant en Français - Les tooltips des boutons edit/delete sont maintenant en Français
- La case à cocher "Cacher les points de tâches" fonctionne de nouveau - La case à cocher "Cacher les points de tâches" fonctionne de nouveau
@@ -351,35 +439,43 @@
- La fenêtre des TMRs ne devrait plus afficher une zone noire au lieu de la carte. - La fenêtre des TMRs ne devrait plus afficher une zone noire au lieu de la carte.
## 11.2.16 - Le Tri d'Akarlikarlikar ## 11.2.16 - Le Tri d'Akarlikarlikar
- Tri alphabétique des items dans la fenêtre de création - Tri alphabétique des items dans la fenêtre de création
- Mise à jour comptage de monde - Mise à jour comptage de monde
## 11.2.15 - La Table d'Akarlikarlikar ## 11.2.15 - La Table d'Akarlikarlikar
- Tirage automatique de la foce d'une rencontre (via la commande /tmrr) - 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) - Ajout de boutons pour ajouter des blessures "complètes" (ie avec perte d'endurance/vie)
## 11.2.14 - Les petits pas d'Akarlikarlikar ## 11.2.14 - Les petits pas d'Akarlikarlikar
- Correction sur la gestion de la surprise - Correction sur la gestion de la surprise
- Ordre des messages sur les cases humides - Ordre des messages sur les cases humides
## 11.2.13 - Les cent pas d'Akarlikarlikar ## 11.2.13 - Les cent pas d'Akarlikarlikar
- Ajout de la commande /voyage pour gérer la fatigue de marche des voyageurs - Ajout de la commande /voyage pour gérer la fatigue de marche des voyageurs
## 11.2.12 - Le somnifère d'Akarlikarlikar ## 11.2.12 - Le somnifère d'Akarlikarlikar
- Fix: les potions enchantées n'empêchent plus de finir correctement Château Dormant - Fix: les potions enchantées n'empêchent plus de finir correctement Château Dormant
## 11.2.11 - Le miroir d'Akarlikarlikar ## 11.2.11 - Le miroir d'Akarlikarlikar
- Changement des images de compétence de créatures morsure/pinces pour être dans le thème - 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 - 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 - Fix: le refoulement ajoute correctement un souffle et revient à 0 en cas d'échec
## 11.2.10 - Les expériences d'Akarlikarlikar ## 11.2.10 - Les expériences d'Akarlikarlikar
- En cas d'expérience des caractéristiques dérivées, - 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 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 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 - 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 ## 11.2.9 - La barbe d'Akarlikarlikar
- Amélioration des textes de tooltips - Amélioration des textes de tooltips
- Les tooltips sont plus dans le thème de couleur du système Rêve de Dragon - 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) - Ajouts d'icones pour les attaque/initiative/soins dans les raccourcis sur les tokens (HUD)
@@ -391,19 +487,23 @@
- Changement de l'icône d'état d'empoignade pour suivre les couleurs des autres icônes d'état - 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 ## 11.2.8 - L'éclairage d'Akarlikarlikar
- l'ajustement de la lumière jour/nuit s'étale sur moins de temps (vaisseau et Lyre) - 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 nouveaux tooltips ne masquent plus l'information d'expérience
- les jets de dés pour maîtriser les rencontres fonctionnent de nouveau - les jets de dés pour maîtriser les rencontres fonctionnent de nouveau
## 11.2.7 - Les explications d'Akarlikarlikar ## 11.2.7 - Les explications d'Akarlikarlikar
- Ajout de tooltips sur la plupart des boutons, liens clickables, objets, tâches, ... - 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 - Fix: on peut de nouveau regarder l'inventaire avec les droits limités/observateur
## 11.2.6 - Les réveils difficiles d'Akarlikarlikar ## 11.2.6 - Les réveils difficiles d'Akarlikarlikar
- Les changements de points de Cœur sont temporaires jusqu'à fin Château Dormant - 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, ...) - 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 ## 11.2.2 - Les tendres moments d'Akarlikarlikar
- On peut maintenant avoir des points de Cœur pour des suivants/compagnons - On peut maintenant avoir des points de Cœur pour des suivants/compagnons
- diminuer les points de coeurs fait perdre du moral - diminuer les points de coeurs fait perdre du moral
- on peut proposer un tendre moment - on peut proposer un tendre moment
@@ -422,11 +522,14 @@
ne bloquent plus les jets de dés ne bloquent plus les jets de dés
## v11.2.1 - La technique d'Akarlikarlikar ## 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". - 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 - 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 Vu qu'elles ne peuvent pas être utilisées, permet de savoir pourquoi
## v11.2.0 - Les Terres médianes d'Akarlikarlikar ## v11.2.0 - Les Terres médianes d'Akarlikarlikar
- Les TMRs sont redimensionables - Les TMRs sont redimensionables
- Nouveaux graphismes plus lisibles dans les TMRs - Nouveaux graphismes plus lisibles dans les TMRs
- Nouveau code couleur des icônes dans les TMR: - Nouveau code couleur des icônes dans les TMR:
@@ -440,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 - 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
## v11.1.6 - Les dissections de Werther de Zloth ## v11.1.6 - Les dissections de Werther de Zloth
- Fix: on peut de nouveau donner des compétences aux créatures - 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: 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 - Fix: l'encaissement à valider par le MJ fonctionne de nouveau
## v11.1.5 - Werther de Zloth l'Onirique ## v11.1.5 - Werther de Zloth l'Onirique
- Fixes: - Fixes:
- la demande de défense ne marchait plus - la demande de défense ne marchait plus
- la tête réserve extensible crée bien une case de réserve extensible (à modifier) - la tête réserve extensible crée bien une case de réserve extensible (à modifier)
@@ -460,6 +566,7 @@ Vu qu'elles ne peuvent pas être utilisées, permet de savoir pourquoi
- pas de jets de vie pour les morts - pas de jets de vie pour les morts
## v11.1.4 - Werther de Zloth l'Onirique ## 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é - 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: 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 - Fix: la fatigue et l'éthylisme sont de nouveau pris en compte dans le calcul de l'éthylisme
@@ -469,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 - Esthétique: ne pas afficher "+0" pour les ajustements de jets/encaissement
## v11.1.2 - Les vertèbres de Werther de Zloth ## v11.1.2 - Les vertèbres de Werther de Zloth
- Fix: les jets d'encaissement fonctionnent de nouveau normalement - 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 - 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 ## v11.1.1 - Les fumebols de Werther de Zloth
- Fix: on peut de nouveau afficher les vues détaillées - 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: 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 - Fix: cuisiner du gibier prend maintenant bien les proportaions en compte
## v11.1.0 - Les choix de Werther de Zloth ## v11.1.0 - Les choix de Werther de Zloth
- Les options suivantes peuvent être désactivées: - Les options suivantes peuvent être désactivées:
- La transformation de stress à Château Dormant - La transformation de stress à Château Dormant
- La récuperation de chance à Château Dormant - La récuperation de chance à Château Dormant
@@ -495,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) - en cas de charge, les particulières sont toujours en force (p125)
# v11.0 # v11.0
## v11.0.28 - les fractures de Khrachtchoum ## v11.0.28 - les fractures de Khrachtchoum
- La gravité de la blessure est affichée dans le résumé de l'encaissement - La gravité de la blessure est affichée dans le résumé de l'encaissement
- Lors du changement d'acteur pendant le round - 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é - le message annonçant le joueur dont c'est le tour ne contient plus d'informations de santé
@@ -507,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 - le moral est indiqué avant l'icone d'appel au moral
## v11.0.27 - Khrachtchoum le méticuleux ## v11.0.27 - Khrachtchoum le méticuleux
- le tooltip dans les TMR reste visible si on ne bouge pas la souris - le tooltip dans les TMR reste visible si on ne bouge pas la souris
- le surencombrement n'affecte QUE les actions physiques - le surencombrement n'affecte QUE les actions physiques
- on peut de nouveau fabriquer une potion depuis la fenêtre d'édition de l'herbe - 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 - 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 ## v11.0.26 - le crépuscule de Khrachtchoum
- gestion correcte des TMRs - 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 - 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 - lorsqu'une fenêtre liée aux demi-rêve est affichée, cliquer sur les TMRs n'a pas d'effet
@@ -531,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 - les jets de compétences d'attaque des créatures fonctionnent de nouveau
## v11.0.25 - la vision du rêve de Khrachtchoum ## 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 - Les TMRs restent affichées tant que le Haut-rêvant est en demi-rêve
## v11.0.24 - les couleurs de Khrachtchoum ## v11.0.24 - les couleurs de Khrachtchoum
- nouvelle carte des TMRs - nouvelle carte des TMRs
## v11.0.23 - la lumière de Khrachtchoum ## v11.0.23 - la lumière de Khrachtchoum
- ajustement automatique de la luminosité selon l'heure pour les scènes: - 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 une vision des tokens (sinon: ce n'est pas une scène de carte pour tokens)
- avec illumination globale (correspondant à une illumination extérieure) - avec illumination globale (correspondant à une illumination extérieure)
- quand lampe "allumée" dans la fenêtre du calendrier - quand lampe "allumée" dans la fenêtre du calendrier
## v11.0.22 - les automatismes de Khrachtchoum le Problémeux ## v11.0.22 - les automatismes de Khrachtchoum le Problémeux
- Macro pour attaquer avec les compétences de créatures - Macro pour attaquer avec les compétences de créatures
## v11.0.20 ## v11.0.20
- Macro pour attaquer avec les armes des personnages - Macro pour attaquer avec les armes des personnages
## v11.0.17 ## v11.0.17
- Fix: les actions de commerce ne s'appliquait pas bien aux personnages des tokens non liés - Fix: les actions de commerce ne s'appliquait pas bien aux personnages des tokens non liés
## v11.0.15 - L'apprentissage de Khrachtchoum ## 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) - 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 ## v11.0.14 - Les pincettes de Khrachtchoum le Problémeux
- Correction du calcul de la place restante lors de l'ajout dans un conteneur - 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 ## 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 - 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 ## v11.0.12 - Les poids de la mesure de Khrachtchoum le Problémeux
- Correction des malus de surencombrement - Correction des malus de surencombrement
- Le malus armure est correctement affiché dans l'onglet des caractéristiques - Le malus armure est correctement affiché dans l'onglet des caractéristiques
- Correction d'orthographe et amélioration des messages des oeuvres d'art - Correction d'orthographe et amélioration des messages des oeuvres d'art
## v11.0.11 - Les bleus de Khrachtchoum le Problémeux ## 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 - 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. - 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 ## 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 - 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 - 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 créée au lieu de créer toujours une nouvelle tâche
@@ -580,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 les heures dormies sont déduites des heures restant à dormir
## v11.0.9 - Les Souvenirs de Khrachtchoum le Problémeux ## v11.0.9 - Les Souvenirs de Khrachtchoum le Problémeux
- mode de saisie de l'archétype en vue détaillée - mode de saisie de l'archétype en vue détaillée
- création une nouvelle incarnation depuis l'archétype - création une nouvelle incarnation depuis l'archétype
- réorganisation de la fenêtre de sélection des règles optionnelles - 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 - correction de l'affichage du type dans les fenêtres d'objets
## v11.0.8 - la poigne de Sémolosse ## v11.0.8 - la poigne de Sémolosse
- lien vers le changelog - lien vers le changelog
- organisation des compendiums du système - organisation des compendiums du système
- correction de l'empoignade - correction de l'empoignade

View File

@@ -79,6 +79,11 @@ select,
:root { :root {
/* =================== 2. DEBUGGING HIGHLIGHTERS ============ */ /* =================== 2. DEBUGGING HIGHLIGHTERS ============ */
/* =================== 3. some constants ============ */ /* =================== 3. some constants ============ */
--fieldset-background: url(/ui/parchment.jpg);
--rdd-color-text-primary: rgba(10, 10, 10, 0.9);
--rdd-input-background: rgba(0, 0, 0, 0.05);
--rdd-color-border-input: rgba(0, 0, 0, 0.2);
--rdd-bg-input: rgba(255, 255, 255, 0.1);
--color-controls: rgba(0, 0, 0, 0.9); --color-controls: rgba(0, 0, 0, 0.9);
--color-controls-light: hsla(0, 0%, 20%, 0.8); --color-controls-light: hsla(0, 0%, 20%, 0.8);
--color-controls-hover: hsla(60, 100%, 75%, 0.7); --color-controls-hover: hsla(60, 100%, 75%, 0.7);
@@ -127,8 +132,8 @@ select,
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
/* Control, Tool, hotbar & navigation */ /* Control, Tool, hotbar & navigation */
/* Tooltip container */ /* Tooltip container */
/* Tooltip text */
/* Show the tooltip text when you mouse over the tooltip container */ /* Show the tooltip text when you mouse over the tooltip container */
/* html Tooltips html*/
/* Dropdown Content (Hidden by Default) */ /* Dropdown Content (Hidden by Default) */
/* Change the background color of the dropdown button when the dropdown content is shown */ /* Change the background color of the dropdown button when the dropdown content is shown */
/* Show the dropdown menu on hover */ /* Show the dropdown menu on hover */
@@ -139,30 +144,274 @@ select,
/*when navigating through the items using the arrow keys:*/ /*when navigating through the items using the arrow keys:*/
/*************************************************************/ /*************************************************************/
} }
.system-foundryvtt-reve-de-dragon .application.sheet.fvtt-rdd .window-content { .system-foundryvtt-reve-de-dragon .monnaie-content {
padding: 0px;
background: #011d33 url(../assets/ui/bg_header.webp) no-repeat left top;
color: #ffffff;
}
.system-foundryvtt-reve-de-dragon .monnaie-content .editor,
.system-foundryvtt-reve-de-dragon .monnaie-content .editor-content {
height: auto;
min-height: 100px;
background: var(--rdd-bg-input-alt);
padding: 5px;
border-radius: 3px;
color: var(--rdd-color-text-primary);
}
.system-foundryvtt-reve-de-dragon .monnaie-content .window-content {
font-family: CaslonAntique; font-family: CaslonAntique;
text-align: justify; text-align: justify;
font-size: 1rem; font-size: 1rem;
letter-spacing: 1px; letter-spacing: 1px;
padding: 0% 0 0 0;
font-size: calc(var(--font-size-standard) * 1); font-size: calc(var(--font-size-standard) * 1);
color: var(--color-dark-1); color: var(--color-dark-1);
background: var(--background-image-base) no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.system-foundryvtt-reve-de-dragon .application.sheet.fvtt-rdd section.window-content { .system-foundryvtt-reve-de-dragon .monnaie-content fieldset {
padding: 0rem; background: var(--fieldset-background);
color: var(--rdd-color-text-primary);
margin-bottom: 4px;
border-radius: 6px;
border-color: var(--rdd-color-text-primary);
border-width: 2px;
} }
.system-foundryvtt-reve-de-dragon .application.sheet.fvtt-rdd section.window-content section header.sheet-header { .system-foundryvtt-reve-de-dragon .monnaie-content .form-group {
background: #011d33 url(../assets/ui/bg_header.webp) no-repeat left top; display: flex;
color: #ffffff; flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
padding: 2px 0;
border-bottom: 1px solid var(--rdd-color-shadow-primary);
font-size: 0.9rem;
} }
.system-foundryvtt-reve-de-dragon .application.sheet.fvtt-rdd section.window-content section header.sheet-header :is( .system-foundryvtt-reve-de-dragon .monnaie-content .form-group label {
font-weight: normal;
flex: 2;
padding-left: 5px;
margin: 0;
color: var(--rdd-color-text-primary);
}
.system-foundryvtt-reve-de-dragon .monnaie-content .form-group .attribute-value,
.system-foundryvtt-reve-de-dragon .monnaie-content .form-group input[type="text"],
.system-foundryvtt-reve-de-dragon .monnaie-content .form-group input[type="number"],
.system-foundryvtt-reve-de-dragon .monnaie-content .form-group select {
flex: 3;
background: var(--rdd-input-background);
border: 1px solid var(--rdd-color-border-input);
color: var(--rdd-color-text-input);
padding: 2px 2px;
border-radius: 3px;
}
.system-foundryvtt-reve-de-dragon .monnaie-content .form-group input[type="checkbox"] {
flex: 0 0 20px;
margin-left: 5px;
}
.system-foundryvtt-reve-de-dragon .monnaie-content .sheet-header-row {
display: flex;
flex-direction: row;
align-items: center;
}
.system-foundryvtt-reve-de-dragon .monnaie-content .sheet-header-row h1,
.system-foundryvtt-reve-de-dragon .monnaie-content .sheet-header-row input {
font-family: CaslonAntique;
font-size: 2.5rem;
font-weight: normal;
color: var(--window-header-title-color);
margin: 4px;
height: 3rem;
}
.system-foundryvtt-reve-de-dragon .monnaie-content :is(
input[type="text"], input[type="text"],
input[type="number"], input[type="number"],
input[type="password"], input[type="password"],
input[type="datetime-local"], input[type="datetime-local"],
input[type="date"], input[type="date"],
input[type="time"]) { input[type="time"]
) {
color: rgba(255, 255, 255, 0.75);
background: rgba(255, 255, 255, 0.1);
border: 0 none;
margin-bottom: 0.2rem;
}
.system-foundryvtt-reve-de-dragon .munition-content {
padding: 0px;
background: #011d33 url(../assets/ui/bg_header.webp) no-repeat left top;
color: #ffffff;
}
.system-foundryvtt-reve-de-dragon .munition-content .editor,
.system-foundryvtt-reve-de-dragon .munition-content .editor-content {
height: auto;
min-height: 100px;
background: var(--rdd-bg-input-alt);
padding: 5px;
border-radius: 3px;
color: var(--rdd-color-text-primary);
}
.system-foundryvtt-reve-de-dragon .munition-content .window-content {
font-family: CaslonAntique;
text-align: justify;
font-size: 1rem;
letter-spacing: 1px;
padding: 0% 0 0 0;
font-size: calc(var(--font-size-standard) * 1);
color: var(--color-dark-1);
background-size: 100% 100%;
}
.system-foundryvtt-reve-de-dragon .munition-content fieldset {
background: var(--fieldset-background);
color: var(--rdd-color-text-primary);
margin-bottom: 4px;
border-radius: 6px;
border-color: var(--rdd-color-text-primary);
border-width: 2px;
}
.system-foundryvtt-reve-de-dragon .munition-content .form-group {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
padding: 2px 0;
border-bottom: 1px solid var(--rdd-color-shadow-primary);
font-size: 0.9rem;
}
.system-foundryvtt-reve-de-dragon .munition-content .form-group label {
font-weight: normal;
flex: 2;
padding-left: 5px;
margin: 0;
color: var(--rdd-color-text-primary);
}
.system-foundryvtt-reve-de-dragon .munition-content .form-group .attribute-value,
.system-foundryvtt-reve-de-dragon .munition-content .form-group input[type="text"],
.system-foundryvtt-reve-de-dragon .munition-content .form-group input[type="number"],
.system-foundryvtt-reve-de-dragon .munition-content .form-group select {
flex: 3;
background: var(--rdd-input-background);
border: 1px solid var(--rdd-color-border-input);
color: var(--rdd-color-text-input);
padding: 2px 2px;
border-radius: 3px;
}
.system-foundryvtt-reve-de-dragon .munition-content .form-group input[type="checkbox"] {
flex: 0 0 20px;
margin-left: 5px;
}
.system-foundryvtt-reve-de-dragon .munition-content .sheet-header-row {
display: flex;
flex-direction: row;
align-items: center;
}
.system-foundryvtt-reve-de-dragon .munition-content .sheet-header-row h1,
.system-foundryvtt-reve-de-dragon .munition-content .sheet-header-row input {
font-family: CaslonAntique;
font-size: 2.5rem;
font-weight: normal;
color: var(--window-header-title-color);
margin: 4px;
height: 3rem;
}
.system-foundryvtt-reve-de-dragon .munition-content :is(
input[type="text"],
input[type="number"],
input[type="password"],
input[type="datetime-local"],
input[type="date"],
input[type="time"]
) {
color: rgba(255, 255, 255, 0.75);
background: rgba(255, 255, 255, 0.1);
border: 0 none;
margin-bottom: 0.2rem;
}
.system-foundryvtt-reve-de-dragon .tarot-content {
padding: 0px;
background: #011d33 url(../assets/ui/bg_header.webp) no-repeat left top;
color: #ffffff;
}
.system-foundryvtt-reve-de-dragon .tarot-content .editor,
.system-foundryvtt-reve-de-dragon .tarot-content .editor-content {
height: auto;
min-height: 100px;
background: var(--rdd-bg-input-alt);
padding: 5px;
border-radius: 3px;
color: var(--rdd-color-text-primary);
}
.system-foundryvtt-reve-de-dragon .tarot-content .window-content {
font-family: CaslonAntique;
text-align: justify;
font-size: 1rem;
letter-spacing: 1px;
padding: 0% 0 0 0;
font-size: calc(var(--font-size-standard) * 1);
color: var(--color-dark-1);
background-size: 100% 100%;
}
.system-foundryvtt-reve-de-dragon .tarot-content fieldset {
background: var(--fieldset-background);
color: var(--rdd-color-text-primary);
margin-bottom: 4px;
border-radius: 6px;
border-color: var(--rdd-color-text-primary);
border-width: 2px;
}
.system-foundryvtt-reve-de-dragon .tarot-content .form-group {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
padding: 2px 0;
border-bottom: 1px solid var(--rdd-color-shadow-primary);
font-size: 0.9rem;
}
.system-foundryvtt-reve-de-dragon .tarot-content .form-group label {
font-weight: normal;
flex: 2;
padding-left: 5px;
margin: 0;
color: var(--rdd-color-text-primary);
}
.system-foundryvtt-reve-de-dragon .tarot-content .form-group .attribute-value,
.system-foundryvtt-reve-de-dragon .tarot-content .form-group input[type="text"],
.system-foundryvtt-reve-de-dragon .tarot-content .form-group input[type="number"],
.system-foundryvtt-reve-de-dragon .tarot-content .form-group select {
flex: 3;
background: var(--rdd-input-background);
border: 1px solid var(--rdd-color-border-input);
color: var(--rdd-color-text-input);
padding: 2px 2px;
border-radius: 3px;
}
.system-foundryvtt-reve-de-dragon .tarot-content .form-group input[type="checkbox"] {
flex: 0 0 20px;
margin-left: 5px;
}
.system-foundryvtt-reve-de-dragon .tarot-content .sheet-header-row {
display: flex;
flex-direction: row;
align-items: center;
}
.system-foundryvtt-reve-de-dragon .tarot-content .sheet-header-row h1,
.system-foundryvtt-reve-de-dragon .tarot-content .sheet-header-row input {
font-family: CaslonAntique;
font-size: 2.5rem;
font-weight: normal;
color: var(--window-header-title-color);
margin: 4px;
height: 3rem;
}
.system-foundryvtt-reve-de-dragon .tarot-content :is(
input[type="text"],
input[type="number"],
input[type="password"],
input[type="datetime-local"],
input[type="date"],
input[type="time"]
) {
color: rgba(255, 255, 255, 0.75); color: rgba(255, 255, 255, 0.75);
background: rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.1);
border: 0 none; border: 0 none;
@@ -171,8 +420,9 @@ select,
.system-foundryvtt-reve-de-dragon .window-header { .system-foundryvtt-reve-de-dragon .window-header {
background: rgba(0, 0, 0, 0.75); 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 { .system-foundryvtt-reve-de-dragon .window-app.sheet .window-content {
margin: 0; margin: 0.2rem;
padding: 0; padding: 0;
} }
.system-foundryvtt-reve-de-dragon section.window-content div.dialog-buttons { .system-foundryvtt-reve-de-dragon section.window-content div.dialog-buttons {
@@ -472,6 +722,7 @@ select,
margin: 0; margin: 0;
justify-content: center; justify-content: center;
text-align: left; text-align: left;
display: ruby;
} }
.system-foundryvtt-reve-de-dragon .equipement-valeur { .system-foundryvtt-reve-de-dragon .equipement-valeur {
margin: 0; margin: 0;
@@ -491,6 +742,8 @@ select,
align-items: center; align-items: center;
justify-content: center; justify-content: center;
text-align: center; text-align: center;
display: flex;
flex-direction: row;
} }
.system-foundryvtt-reve-de-dragon .equipement-button { .system-foundryvtt-reve-de-dragon .equipement-button {
margin: 0; margin: 0;
@@ -604,6 +857,7 @@ select,
max-width: 1.5em; max-width: 1.5em;
max-height: 1.5em; max-height: 1.5em;
border-width: 0; border-width: 0;
display: inline;
} }
.system-foundryvtt-reve-de-dragon .dimmed { .system-foundryvtt-reve-de-dragon .dimmed {
opacity: 50%; opacity: 50%;
@@ -622,13 +876,40 @@ select,
padding: 0.2em; padding: 0.2em;
border-width: 0; 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-height: 32px;
max-width: 32px; max-width: 32px;
border: 0; border: 0;
vertical-align: bottom; 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); color: var(--color-controls-hover);
border: 1px solid var(--color-control-border-hover); border: 1px solid var(--color-control-border-hover);
text-shadow: 1px 0px 0px #ff6600; text-shadow: 1px 0px 0px #ff6600;
@@ -733,13 +1014,13 @@ select,
margin-inline: 0.1rem; margin-inline: 0.1rem;
margin-block: 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; font-family: CaslonAntique;
text-align: justify; text-align: justify;
font-size: 1rem; font-size: 1rem;
letter-spacing: 1px; 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; clear: both;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@@ -747,14 +1028,15 @@ select,
margin: 0.1rem 0; margin: 0.1rem 0;
align-items: center; 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; height: fit-content;
min-height: 5rem; 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; min-height: 5rem;
height: fit-content; height: 8rem;
margin: 0; margin: 0;
flex: none;
} }
.system-foundryvtt-reve-de-dragon .large-editor { .system-foundryvtt-reve-de-dragon .large-editor {
border: 2; border: 2;
@@ -903,12 +1185,12 @@ select,
font-weight: bold; font-weight: bold;
background-color: lightblue; 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; font-size: 0.8rem;
padding: 5px; padding: 5px;
} }
.system-foundryvtt-reve-de-dragon .poesie-extrait { .system-foundryvtt-reve-de-dragon .poesie-extrait {
font-size: 0.9rem; font-size: 0.8rem;
font-style: italic; font-style: italic;
} }
.system-foundryvtt-reve-de-dragon .poesie-reference { .system-foundryvtt-reve-de-dragon .poesie-reference {
@@ -1042,8 +1324,7 @@ select,
white-space: nowrap; white-space: nowrap;
word-break: break-all; word-break: break-all;
} }
.system-foundryvtt-reve-de-dragon span.content-link, .system-foundryvtt-reve-de-dragon .content-link {
.system-foundryvtt-reve-de-dragon a.content-link {
background: hsla(45, 100%, 80%, 0.2); background: hsla(45, 100%, 80%, 0.2);
color: hsla(300, 70%, 20%, 0.8); color: hsla(300, 70%, 20%, 0.8);
font-weight: 560; font-weight: 560;
@@ -1052,6 +1333,7 @@ select,
border-radius: 0.25rem; border-radius: 0.25rem;
white-space: nowrap; white-space: nowrap;
word-break: break-all; word-break: break-all;
display: ruby;
} }
.system-foundryvtt-reve-de-dragon a.roll-text i.fas { .system-foundryvtt-reve-de-dragon a.roll-text i.fas {
color: var(--color-text-dark-inactive); color: var(--color-text-dark-inactive);
@@ -1080,7 +1362,7 @@ select,
width: 100%; width: 100%;
max-width: 90%; 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; top: 2rem;
left: 2rem; left: 2rem;
margin: 0; margin: 0;
@@ -1288,6 +1570,8 @@ select,
.system-foundryvtt-reve-de-dragon .list-item-label, .system-foundryvtt-reve-de-dragon .list-item-label,
.system-foundryvtt-reve-de-dragon .list-title-label { .system-foundryvtt-reve-de-dragon .list-title-label {
flex-grow: 2; flex-grow: 2;
display: flex;
flex-direction: row;
} }
.system-foundryvtt-reve-de-dragon .attribut-value, .system-foundryvtt-reve-de-dragon .attribut-value,
.system-foundryvtt-reve-de-dragon .carac-value { .system-foundryvtt-reve-de-dragon .carac-value {
@@ -1339,9 +1623,13 @@ select,
.system-foundryvtt-reve-de-dragon table.table-nombres-astraux th > td { .system-foundryvtt-reve-de-dragon table.table-nombres-astraux th > td {
font-size: 1rem; font-size: 1rem;
} }
.system-foundryvtt-reve-de-dragon table.table-nombres-astraux tr > td { .system-foundryvtt-reve-de-dragon table.table-nombres-astraux tr td {
font-size: 0.8rem; font-size: 0.8rem;
} }
.system-foundryvtt-reve-de-dragon table.table-nombres-astraux tr td.info-acteur {
flex-direction: row;
display: flex;
}
.system-foundryvtt-reve-de-dragon table.table-nombres-astraux :is(tr, th, td) { .system-foundryvtt-reve-de-dragon table.table-nombres-astraux :is(tr, th, td) {
border-style: solid; border-style: solid;
border-width: 1px; border-width: 1px;
@@ -1487,9 +1775,11 @@ select,
background: rgba(0, 0, 0, 0.05); background: rgba(0, 0, 0, 0.05);
cursor: pointer; cursor: pointer;
} }
.system-foundryvtt-reve-de-dragon .chat-message { .system-foundryvtt-reve-de-dragon .chat-message h4 {
background: rgba(220, 220, 210, 0.5); font-size: 0.9rem;
font-size: 1rem; }
.system-foundryvtt-reve-de-dragon .chat-message .message-content {
text-align: justify;
} }
.system-foundryvtt-reve-de-dragon .chat-message header.message-header .heure-rdd { .system-foundryvtt-reve-de-dragon .chat-message header.message-header .heure-rdd {
font-size: 0.7rem; font-size: 0.7rem;
@@ -1499,6 +1789,9 @@ select,
background: rgba(220, 220, 210, 0.75); background: rgba(220, 220, 210, 0.75);
border: 2px solid #545469; border: 2px solid #545469;
} }
.system-foundryvtt-reve-de-dragon .chat-message hr {
margin: 0.2rem 0;
}
.system-foundryvtt-reve-de-dragon .chat-icon { .system-foundryvtt-reve-de-dragon .chat-icon {
border: 0; border: 0;
padding: 2px 6px 2px 2px; padding: 2px 6px 2px 2px;
@@ -1513,6 +1806,13 @@ select,
padding: 1px; padding: 1px;
vertical-align: text-top; 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 { .system-foundryvtt-reve-de-dragon #sidebar-tabs {
flex: 0 0 28px; flex: 0 0 28px;
box-sizing: border-box; box-sizing: border-box;
@@ -1911,8 +2211,6 @@ select,
display: grid; display: grid;
background: hsl(0, 0%, 20%); background: hsl(0, 0%, 20%);
color: hsla(0, 0%, 80%, 0.8); 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 { .system-foundryvtt-reve-de-dragon .calendar-boutons-heure .calendar-btn:is(.calendar-lyre,.calendar-vaisseau) img {
color: hsla(0, 0%, 100%, 0.5); color: hsla(0, 0%, 100%, 0.5);
@@ -1925,40 +2223,38 @@ select,
.system-foundryvtt-reve-de-dragon .calendar-boutons-heure i { .system-foundryvtt-reve-de-dragon .calendar-boutons-heure i {
border: 1px solid rgba(0, 0, 0, 0); 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); color: var(--color-controls-hover);
border: 1px solid var(--color-control-border-hover); border: 1px solid var(--color-control-border-hover);
cursor: pointer; cursor: pointer;
} }
.system-foundryvtt-reve-de-dragon .calendar-1min { .system-foundryvtt-reve-de-dragon .calendar-1min {
grid-column: 1; grid-column: 1/1;
} }
.system-foundryvtt-reve-de-dragon .calendar-5min { .system-foundryvtt-reve-de-dragon .calendar-5min {
grid-column: 2; grid-column: 2/2;
} }
.system-foundryvtt-reve-de-dragon .calendar-15min { .system-foundryvtt-reve-de-dragon .calendar-15min {
grid-column: 3; grid-column: 3/3;
} }
.system-foundryvtt-reve-de-dragon .calendar-30min { .system-foundryvtt-reve-de-dragon .calendar-30min {
grid-column: 4; grid-column: 4/4;
} }
.system-foundryvtt-reve-de-dragon .calendar-60min { .system-foundryvtt-reve-de-dragon .calendar-60min {
grid-column: 5; grid-column: 5/5;
} }
.system-foundryvtt-reve-de-dragon .calendar-1heure { .system-foundryvtt-reve-de-dragon .calendar-1heure {
grid-column: 6; grid-column: 6/6;
} }
.system-foundryvtt-reve-de-dragon .calendar-lyre { .system-foundryvtt-reve-de-dragon .calendar-lyre {
grid-column: 7; grid-column: 7/8;
} }
.system-foundryvtt-reve-de-dragon .calendar-vaisseau { .system-foundryvtt-reve-de-dragon .calendar-vaisseau {
grid-column: 8; grid-column: 9/10;
} }
.system-foundryvtt-reve-de-dragon .calendar-set-datetime { .system-foundryvtt-reve-de-dragon :is(.calendar-lyre,.calendar-vaisseau) {
grid-column: 9; display: flex;
} flex-direction: row;
.system-foundryvtt-reve-de-dragon .calendar-astrologie {
grid-column: 10;
} }
.system-foundryvtt-reve-de-dragon div.horloge-analogique { .system-foundryvtt-reve-de-dragon div.horloge-analogique {
border: none; border: none;
@@ -1993,11 +2289,26 @@ select,
position: relative; position: relative;
display: inline-block; display: inline-block;
} }
.system-foundryvtt-reve-de-dragon .tooltip-overflow {
display: inline-block;
}
.system-foundryvtt-reve-de-dragon .tooltip-dotted { .system-foundryvtt-reve-de-dragon .tooltip-dotted {
border-bottom: 1px dotted black; border-bottom: 1px dotted black;
/* If you want dots under the hoverable text */ /* 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; text-align: center;
/* Position the tooltip text */ /* Position the tooltip text */
position: absolute; position: absolute;
@@ -2007,10 +2318,7 @@ select,
opacity: 0; opacity: 0;
transition: opacity 0.3s; transition: opacity 0.3s;
} }
.system-foundryvtt-reve-de-dragon .tooltip .left-competence { .system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .ttt-fatigue {
transform: translate(-100%, 0%);
}
.system-foundryvtt-reve-de-dragon .tooltip .ttt-fatigue {
width: 360px; width: 360px;
background: rgba(30, 25, 20, 0.9); background: rgba(30, 25, 20, 0.9);
border-image: url(../assets/ui/bg_control.webp) 21 repeat; border-image: url(../assets/ui/bg_control.webp) 21 repeat;
@@ -2021,29 +2329,24 @@ select,
font-size: 0.8rem; font-size: 0.8rem;
padding: 3px 0; padding: 3px 0;
} }
.system-foundryvtt-reve-de-dragon .tooltip .ttt-ajustements { .system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .ttt-ajustements {
width: 150px; width: 10rem;
background: var(--background-tooltip); background: var(--background-tooltip);
border-radius: 6px; border-radius: 6px;
font-size: 0.9rem; font-size: 0.9rem;
padding: 3px 0; padding: 3px 0;
} }
.system-foundryvtt-reve-de-dragon .tooltip .ttt-titre { .system-foundryvtt-reve-de-dragon :is(.tooltip, .tooltip-overflow) .ttt-ajustements div:nth-child(odd) {
text-align: justify; background: var(--background-tooltip-alt);
width: 100%;
top: 30px;
background: var(--background-tooltip);
border-radius: 6px;
font-size: 0.9rem;
padding: 3px;
} }
.system-foundryvtt-reve-de-dragon aside#tooltip { .system-foundryvtt-reve-de-dragon aside#tooltip {
max-width: 15rem;
background: var(--background-tooltip); background: var(--background-tooltip);
/*color: var(--color-text-dark-primary);*/
color: rgba(100, 100, 50, 0.85); color: rgba(100, 100, 50, 0.85);
font-size: 1rem; font-size: 0.9rem;
border-radius: 0.2rem; border-radius: 0.2rem;
padding: 0.4rem; padding: 0.3rem;
font-family: "CaslonAntique";
} }
.system-foundryvtt-reve-de-dragon aside#tooltip span.reference { .system-foundryvtt-reve-de-dragon aside#tooltip span.reference {
color: var(--color-tooltip); color: var(--color-tooltip);
@@ -2052,17 +2355,6 @@ select,
.system-foundryvtt-reve-de-dragon aside#tooltip .toolclip p.faint { .system-foundryvtt-reve-de-dragon aside#tooltip .toolclip p.faint {
color: var(--color-tooltip-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,
.system-foundryvtt-reve-de-dragon .chat-card-button-pushed { .system-foundryvtt-reve-de-dragon .chat-card-button-pushed {
border-radius: 0.2rem; border-radius: 0.2rem;

View File

@@ -19,7 +19,7 @@ const css = gulp.series(compileLESS);
/* ----------------------------------------- */ /* ----------------------------------------- */
/* Watch Updates /* Watch Updates
/* ----------------------------------------- */ /* ----------------------------------------- */
const SIMPLE_LESS = ["less/*.less"]; const SIMPLE_LESS = ["less/*.less", "less/item/*.less"];
function watchUpdates() { function watchUpdates() {
gulp.watch(SIMPLE_LESS, css); gulp.watch(SIMPLE_LESS, css);

View File

@@ -9,7 +9,13 @@
// --debug-box-shadow-blue: inset 0 0 2px blue; // --debug-box-shadow-blue: inset 0 0 2px blue;
// --debug-box-shadow-green: inset 0 0 2px green; // --debug-box-shadow-green: inset 0 0 2px green;
/* =================== 3. some constants ============ */ /* =================== 3. some constants ============ */
--fieldset-background: url(/ui/parchment.jpg);
--rdd-color-text-primary: rgba(10, 10, 10, 0.9);
--rdd-input-background:rgba(0, 0, 0, 0.05);
--rdd-color-border-input: rgba(0, 0, 0, 0.2);
--rdd-bg-input: rgba(255, 255, 255, 0.1);
--color-controls:rgba(0, 0, 0, 0.9); --color-controls:rgba(0, 0, 0, 0.9);
--color-controls-light:hsla(0, 0%, 20%, 0.8); --color-controls-light:hsla(0, 0%, 20%, 0.8);
--color-controls-hover:hsla(60, 100%, 75%, 0.7); --color-controls-hover:hsla(60, 100%, 75%, 0.7);
@@ -42,4 +48,3 @@
--background-error:hsla(16, 100%, 50%, 0.8); --background-error:hsla(16, 100%, 50%, 0.8);
--color-profile-border: hsla(0, 0%, 80%, 0.05); --color-profile-border: hsla(0, 0%, 80%, 0.05);
} }

View File

@@ -80,5 +80,5 @@
.sheet header.sheet-header .header-compteurs, .sheet header.sheet-header .header-compteurs,
.sheet header.sheet-header .flex-group-center.flex-fatigue, .sheet header.sheet-header .flex-group-center.flex-fatigue,
select, .item-checkbox, #sidebar, #players, #navigation #nav-toggle { 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 */
} }

View File

@@ -4,6 +4,8 @@
.system-foundryvtt-reve-de-dragon { .system-foundryvtt-reve-de-dragon {
@import "sheets.less"; @import "sheets.less";
@import "item/monnaie.less"; @import "item/monnaie.less";
@import "item/munition.less";
@import "item/tarot.less";
// body { // body {
// --input-height: 1.4rem; // --input-height: 1.4rem;
@@ -13,8 +15,9 @@
background: rgba(0,0,0,0.75); background: rgba(0,0,0,0.75);
} }
.application .window-content,
.window-app.sheet .window-content { .window-app.sheet .window-content {
margin: 0; margin: 0.2rem;
padding: 0; padding: 0;
} }
@@ -215,7 +218,6 @@
padding: 0; padding: 0;
} }
.grid-competence-archetype { .grid-competence-archetype {
display: grid; display: grid;
grid-column: span 3 / span 3; grid-column: span 3 / span 3;
@@ -354,6 +356,7 @@
margin: 0; margin: 0;
justify-content: center; justify-content: center;
text-align: left; text-align: left;
display: ruby;
} }
.equipement-valeur { .equipement-valeur {
margin: 0; margin: 0;
@@ -373,6 +376,8 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
text-align: center; text-align: center;
display: flex;
flex-direction: row;
} }
.equipement-button { .equipement-button {
margin: 0; margin: 0;
@@ -492,6 +497,7 @@
max-width: 1.5em; max-width: 1.5em;
max-height: 1.5em; max-height: 1.5em;
border-width: 0; border-width: 0;
display: inline;
} }
.dimmed { .dimmed {
opacity: 50%; opacity: 50%;
@@ -510,13 +516,21 @@
padding: 0.2em; padding: 0.2em;
border-width: 0; 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-height: 32px;
max-width: 32px; max-width: 32px;
border: 0; border: 0;
vertical-align: bottom; 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); color: var(--color-controls-hover);
border: 1px solid var(--color-control-border-hover); border: 1px solid var(--color-control-border-hover);
text-shadow: 1px 0px 0px #ff6600; text-shadow: 1px 0px 0px #ff6600;
@@ -622,13 +636,14 @@
margin-inline: 0.1rem; margin-inline: 0.1rem;
margin-block: 0.1rem; margin-block: 0.1rem;
} }
form.application.sheet.fvtt-rdd fieldset :is(label, input) { .app.sheet fieldset :is(label, input) {
font-family: CaslonAntique; font-family: CaslonAntique;
text-align: justify; text-align: justify;
font-size: 1rem; font-size: 1rem;
letter-spacing: 1px; letter-spacing: 1px;
} }
form.application.sheet.fvtt-rdd div.form-group {
.app.sheet div.form-group {
clear: both; clear: both;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@@ -636,15 +651,17 @@
margin: 0.1rem 0; margin: 0.1rem 0;
align-items: center; align-items: center;
} }
form.application.sheet.fvtt-rdd .editor.prosemirror { .app.sheet .editor.prosemirror {
height: fit-content; height: fit-content;
min-height: 5rem; min-height: 5rem;
} }
form.application.sheet.fvtt-rdd prose-mirror.prosemirror .editor-container { .app.sheet .editor.prosemirror .editor-container {
min-height: 5rem; min-height: 5rem;
height: fit-content; height: 8rem;
margin: 0; margin: 0;
flex: none;
} }
.large-editor { .large-editor {
border: 2; border: 2;
height: fit-content; height: fit-content;
@@ -793,6 +810,7 @@
font-size: 0.8rem; font-size: 0.8rem;
text-align: right; text-align: right;
} }
.placeholder-ajustements { .placeholder-ajustements {
flex-direction: column; flex-direction: column;
} }
@@ -805,13 +823,13 @@
background-color: lightblue; background-color: lightblue;
} }
div.placeholder-resolution span.table-proba-reussite{ span.table-proba-reussite{
font-size: 0.8rem; font-size: 0.8rem;
padding: 5px; padding: 5px;
} }
.poesie-extrait { .poesie-extrait {
font-size: 0.9rem; font-size: 0.8rem;
font-style: italic; font-style: italic;
} }
.poesie-reference{ .poesie-reference{
@@ -960,8 +978,7 @@
word-break: break-all; word-break: break-all;
} }
span.content-link, .content-link {
a.content-link {
background: hsla(45, 100%, 80%, 0.2); background: hsla(45, 100%, 80%, 0.2);
color: hsla(300, 70%, 20%, 0.8); color: hsla(300, 70%, 20%, 0.8);
font-weight: 560; font-weight: 560;
@@ -970,6 +987,7 @@
border-radius: 0.25rem; border-radius: 0.25rem;
white-space: nowrap; white-space: nowrap;
word-break: break-all; word-break: break-all;
display: ruby;
} }
a.roll-text i.fas{ a.roll-text i.fas{
color: var(--color-text-dark-inactive); color: var(--color-text-dark-inactive);
@@ -1002,7 +1020,7 @@
max-width: 90%; max-width: 90%;
} }
.window-app.sheet .window-content .tooltip:hover .tooltiptext { .window-app.sheet .window-content :is(.tooltip, .tooltip-overflow):hover .tooltiptext {
top: 2rem; top: 2rem;
left: 2rem; left: 2rem;
margin: 0; margin: 0;
@@ -1220,6 +1238,8 @@
.list-item-label, .list-item-label,
.list-title-label { .list-title-label {
flex-grow: 2; flex-grow: 2;
display: flex;
flex-direction: row;
} }
.attribut-value, .attribut-value,
.carac-value { .carac-value {
@@ -1273,9 +1293,13 @@
table.table-nombres-astraux th >td { table.table-nombres-astraux th >td {
font-size: 1rem; font-size: 1rem;
} }
table.table-nombres-astraux tr >td { table.table-nombres-astraux tr td {
font-size: 0.8rem; font-size: 0.8rem;
} }
table.table-nombres-astraux tr td.info-acteur {
flex-direction: row;
display: flex;
}
table.table-nombres-astraux :is(tr, th, td) { table.table-nombres-astraux :is(tr, th, td) {
border-style: solid; border-style: solid;
border-width: 1px; border-width: 1px;
@@ -1447,11 +1471,13 @@
cursor: pointer; 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 { .chat-message header.message-header .heure-rdd {
font-size: 0.7rem; font-size: 0.7rem;
flex-grow: 3; flex-grow: 3;
@@ -1461,6 +1487,11 @@
background: rgba(220,220,210,0.75); background: rgba(220,220,210,0.75);
border: 2px solid #545469; border: 2px solid #545469;
} }
.chat-message hr {
margin: 0.2rem 0;
}
.chat-icon { .chat-icon {
border: 0; border: 0;
padding: 2px 6px 2px 2px; padding: 2px 6px 2px 2px;
@@ -1476,6 +1507,14 @@
vertical-align: text-top; 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 { #sidebar-tabs {
flex: 0 0 28px; flex: 0 0 28px;
box-sizing: border-box; box-sizing: border-box;
@@ -1753,9 +1792,6 @@
display: grid; display: grid;
background: hsla(0, 0%, 20%, 1); background: hsla(0, 0%, 20%, 1);
color: hsla(0, 0%, 80%, 0.8); color: hsla(0, 0%, 80%, 0.8);
grid-row: 1;
grid-column: 10;
} }
.calendar-boutons-heure .calendar-btn:is(.calendar-lyre,.calendar-vaisseau) img { .calendar-boutons-heure .calendar-btn:is(.calendar-lyre,.calendar-vaisseau) img {
@@ -1770,23 +1806,24 @@
.calendar-boutons-heure i { .calendar-boutons-heure i {
border: 1px solid rgba(0, 0, 0, 0); border: 1px solid rgba(0, 0, 0, 0);
} }
.calendar-boutons-heure i:hover { .calendar-boutons-heure a:hover {
color: var(--color-controls-hover); color: var(--color-controls-hover);
border: 1px solid var(--color-control-border-hover); border: 1px solid var(--color-control-border-hover);
cursor: pointer; cursor: pointer;
} }
.calendar-1min { grid-column: 1;} .calendar-1min { grid-column: 1/1; }
.calendar-5min { grid-column: 2;} .calendar-5min { grid-column: 2/2; }
.calendar-15min { grid-column: 3;} .calendar-15min { grid-column: 3/3; }
.calendar-30min { grid-column: 4;} .calendar-30min { grid-column: 4/4; }
.calendar-60min { grid-column: 5;} .calendar-60min { grid-column: 5/5; }
.calendar-1heure { grid-column: 6;} .calendar-1heure { grid-column: 6/6; }
.calendar-lyre { grid-column: 7;} .calendar-lyre { grid-column: 7/8; }
.calendar-vaisseau { grid-column: 8;} .calendar-vaisseau { grid-column: 9/10; }
.calendar-set-datetime { grid-column: 9;} :is(.calendar-lyre,.calendar-vaisseau) {
.calendar-astrologie { grid-column: 10;} display: flex;
flex-direction: row;
}
div.horloge-analogique { div.horloge-analogique {
border: none; border: none;
margin: 0; margin: 0;
@@ -1827,66 +1864,78 @@
position: relative; position: relative;
display: inline-block; display: inline-block;
} }
.tooltip-overflow {
display: inline-block;
}
.tooltip-dotted { .tooltip-dotted {
border-bottom: 1px dotted black; /* If you want dots under the hoverable text */ border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
} }
/* Tooltip text */ div.message-content span .tooltip-overflow {
.tooltip .tooltiptext { overflow: visible;
text-align: center;
/* Position the tooltip text */
position: absolute; position: absolute;
z-index: 1; span {
/* Fade in tooltip */ overflow: visible;
visibility: hidden; position: relative;
opacity: 0; }
transition: opacity 0.3s;
} }
.tooltip .left-competence { /* Show the tooltip text when you mouse over the tooltip container */
transform: translate(-100%, 0%); :is(.tooltip, .tooltip-overflow):hover {
.tooltiptext {
visibility: visible;
opacity: 1;
}
} }
/* html Tooltips html*/
:is(.tooltip, .tooltip-overflow){
.tooltip .ttt-fatigue{ .tooltiptext {
width: 360px; text-align: center;
/* Position the tooltip text */
position: absolute;
z-index: 1;
/* Fade in tooltip */
visibility: hidden;
opacity: 0;
transition: opacity 0.3s;
}
background: rgba(30, 25, 20, 0.9); .ttt-fatigue {
border-image: url(../assets/ui/bg_control.webp) 21 repeat; width: 360px;
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; background: rgba(30, 25, 20, 0.9);
padding: 3px 0; 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;
.tooltip .ttt-ajustements { font-size: 0.8rem;
width: 150px; padding: 3px 0;
background: var(--background-tooltip); }
border-radius: 6px;
font-size: 0.9rem;
padding: 3px 0;
}
.tooltip .ttt-titre { .ttt-ajustements {
text-align: justify; width: 10rem;
width: 100%; background: var(--background-tooltip);
top: 30px; border-radius: 6px;
background: var(--background-tooltip); font-size: 0.9rem;
border-radius: 6px; padding: 3px 0;
font-size: 0.9rem; div:nth-child(odd) {
padding: 3px; background: var(--background-tooltip-alt);
}
}
} }
aside#tooltip { aside#tooltip {
max-width: 15rem;
background: var(--background-tooltip); background: var(--background-tooltip);
/*color: var(--color-text-dark-primary);*/
color: rgba(100, 100, 50, 0.85); color: rgba(100, 100, 50, 0.85);
font-size: 1rem; font-size: 0.9rem;
border-radius: 0.2rem; border-radius: 0.2rem;
padding: 0.4rem; padding: 0.3rem;
font-family: "CaslonAntique";
} }
aside#tooltip span.reference { aside#tooltip span.reference {
@@ -1898,19 +1947,6 @@
color: var(--color-tooltip-faint); 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 { .chat-card-button, .chat-card-button-pushed {
border-radius: 0.2rem; border-radius: 0.2rem;

View File

@@ -1,10 +1,7 @@
.application.sheet.fvtt-rdd { // Styles pour la feuille d'objet Monnaie
.sheet-common(); .monnaie-content {
section.window-content{
padding: 0rem; .item-sheet-common();
.item-sheet-header();
section header.sheet-header {
.sheet-header();
}
}
} }

7
less/item/munition.less Normal file
View File

@@ -0,0 +1,7 @@
// Styles pour la feuille d'objet Monnaie
.munition-content {
.item-sheet-common();
.item-sheet-header();
}

7
less/item/tarot.less Normal file
View File

@@ -0,0 +1,7 @@
// Styles pour la feuille d'objet Monnaie
.tarot-content {
.item-sheet-common();
.item-sheet-header();
}

View File

@@ -1,21 +1,96 @@
.sheet-common() { .item-sheet-common() {
padding: 0px;
.window-content{ // Styles pour la section de description, si le partiel utilise une structure standard
.editor,
.editor-content {
height: auto; // Ajuster selon le besoin
min-height: 100px; // Hauteur minimale pour la description
background: var(--rdd-bg-input-alt); // Une couleur de fond alternative
padding: 5px;
border-radius: 3px;
color: var(--rdd-color-text-primary);
}
.window-content {
font-family: CaslonAntique; font-family: CaslonAntique;
text-align: justify; text-align: justify;
font-size: 1rem; font-size: 1rem;
letter-spacing: 1px; letter-spacing: 1px;
padding: 0% 0 0 0;
font-size: calc(var(--font-size-standard) * 1); font-size: calc(var(--font-size-standard) * 1);
color: var(--color-dark-1); color: var(--color-dark-1);
background: var(--background-image-base) no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
fieldset {
background: var(--fieldset-background);
color: var(--rdd-color-text-primary);
margin-bottom: 4px;
border-radius: 6px;
border-color: var(--rdd-color-text-primary);
border-width: 2px;
}
.form-group {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
padding: 2px 0;
border-bottom: 1px solid var(--rdd-color-shadow-primary);
font-size: 0.9rem;
label {
font-weight: normal;
flex: 2;
padding-left: 5px;
margin: 0;
color: var(
--rdd-color-text-primary
); // Assurez-vous que cette variable existe dans colors.less
}
.attribute-value,
input[type="text"],
input[type="number"],
select {
flex: 3;
background: var(--rdd-input-background);
border: 1px solid var(--rdd-color-border-input); // Assurez-vous que cette variable existe
color: var(
--rdd-color-text-input
); // Assurez-vous que cette variable existe
padding: 2px 2px; // Augmentation du padding vertical
border-radius: 3px;
}
input[type="checkbox"] {
flex: 0 0 20px; // Taille fixe pour les cases à cocher
margin-left: 5px;
}
}
} }
.sheet-header() { .item-sheet-header() {
background: #011d33 url(../assets/ui/bg_header.webp) no-repeat left top; background: #011d33 url(../assets/ui/bg_header.webp) no-repeat left top;
color: rgba(255, 255, 255, 1); color: rgba(255, 255, 255, 1);
.sheet-header-row {
display: flex;
flex-direction: row;
align-items: center;
h1,
input {
font-family: CaslonAntique;
font-size: 2.5rem;
font-weight: normal;
color: var(--window-header-title-color);
margin: 4px;
height: 3rem;
}
}
:is( :is(
input[type="text"], input[type="text"],
@@ -23,10 +98,11 @@
input[type="password"], input[type="password"],
input[type="datetime-local"], input[type="datetime-local"],
input[type="date"], input[type="date"],
input[type="time"]) { input[type="time"]
color: rgba(255, 255, 255, 0.75); ) {
background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.75);
border: 0 none; background: rgba(255, 255, 255, 0.1);
margin-bottom: 0.2rem; border: 0 none;
margin-bottom: 0.2rem;
} }
} }

View File

@@ -1583,7 +1583,7 @@ export class RdDActor extends RdDBaseActorSang {
return return
} }
if (rollData.rolled.isEchec || 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.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 */ rollData.moral = await this.moralIncDec(-1); /* L'appel au moral a échoué. Le personnage perd un point de moral */
} }

View File

@@ -341,6 +341,9 @@ export class RdDBaseActorReve extends RdDBaseActor {
const selectedCaracName = ['apparence', 'perception', 'force', 'reve'].find(it => carac[it] != undefined) const selectedCaracName = ['apparence', 'perception', 'force', 'reve'].find(it => carac[it] != undefined)
await this.openRollDialog({ await this.openRollDialog({
name: 'jet-quelconque',
label: 'Jet',
template: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll.hbs',
rollData: { rollData: {
alias: this.getAlias(), alias: this.getAlias(),
carac: carac, carac: carac,

View File

@@ -15,6 +15,7 @@ import { ItemAction } from "../item/item-actions.js";
* @extends {ActorSheet} * @extends {ActorSheet}
*/ */
export class RdDBaseActorSheet extends foundry.appv1.sheets.ActorSheet { export class RdDBaseActorSheet extends foundry.appv1.sheets.ActorSheet {
static _warnedAppV1 = true
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {

View File

@@ -213,6 +213,7 @@ export class RdDBaseActor extends Actor {
isCreatureEntite() { return this.isCreature() || this.isEntite() } isCreatureEntite() { return this.isCreature() || this.isEntite() }
isCreature() { return false } isCreature() { return false }
isEntite(typeentite = []) { return false } isEntite(typeentite = []) { return false }
isHautRevant() { return false }
isVehicule() { return false } isVehicule() { return false }
isPersonnage() { return false } isPersonnage() { return false }
getItem(id, type = undefined) { getItem(id, type = undefined) {

View File

@@ -1,6 +1,4 @@
import { DialogItemAchat } from "../achat-vente/dialog-item-achat.js";
import { RdDItem } from "../item.js"; import { RdDItem } from "../item.js";
import { RdDUtility } from "../rdd-utility.js";
import { RdDBaseActorSheet } from "./base-actor-sheet.js"; import { RdDBaseActorSheet } from "./base-actor-sheet.js";
/** /**
@@ -44,13 +42,8 @@ export class RdDCommerceSheet extends RdDBaseActorSheet {
activateListeners(html) { activateListeners(html) {
super.activateListeners(html); super.activateListeners(html);
this.html.find('a.item-acheter').click(async event => await this.vente(this.getItem(event)));
this.html.find('.service-acheter').click(async event => await this.vente(this.getItem(event)));
if (!this.options.editable) return; if (!this.options.editable) return;
this.html.find('a.item-quantite-moins').click(async event => await this.getItem(event)?.quantiteIncDec(-1, { supprimerSiZero: false }));
this.html.find('a.item-quantite-plus').click(async event => await this.getItem(event)?.quantiteIncDec(1));
this.html.find('input.item-quantite').change(async event => { this.html.find('input.item-quantite').change(async event => {
const newQuantite = Math.max(0, Number.parseInt(this.html.find(event.currentTarget).val())); const newQuantite = Math.max(0, Number.parseInt(this.html.find(event.currentTarget).val()));
await this.getItem(event)?.update({ "system.quantite": newQuantite }); await this.getItem(event)?.update({ "system.quantite": newQuantite });
@@ -64,28 +57,4 @@ export class RdDCommerceSheet extends RdDBaseActorSheet {
getTypesInventaire() { getTypesInventaire() {
return RdDItem.getItemTypesInventaire('all'); return RdDItem.getItemTypesInventaire('all');
} }
async vente(item) {
const acheteur = RdDUtility.getSelectedActor();
if (!acheteur) {
ui.notifications.warn(`Pas d'acheteur sélectionné`);
return;
}
const disponible = this.actor.getQuantiteDisponible(item)
if (disponible == 0) {
ui.notifications.warn(`${this.getAlias()} n'a plus de ${item.name} en vente`);
return;
}
await DialogItemAchat.onAcheter({
item,
vendeur: this.actor,
acheteur,
quantiteIllimite: disponible == undefined,
nbLots: disponible ?? 1,
tailleLot: 1,
prixLot: item.calculerPrixCommercant()
});
}
} }

View File

@@ -1,4 +1,6 @@
import { DialogItemAchat } from "../achat-vente/dialog-item-achat.js";
import { Misc } from "../misc.js"; import { Misc } from "../misc.js";
import { RdDUtility } from "../rdd-utility.js";
import { RdDBaseActor } from "./base-actor.js"; import { RdDBaseActor } from "./base-actor.js";
export class RdDCommerce extends RdDBaseActor { export class RdDCommerce extends RdDBaseActor {
@@ -37,4 +39,27 @@ export class RdDCommerce extends RdDBaseActor {
const pourcentage = this.system.pourcentage ?? 100; const pourcentage = this.system.pourcentage ?? 100;
return Misc.keepDecimals(Math.ceil(item.system.cout * pourcentage) / 100, 2); return Misc.keepDecimals(Math.ceil(item.system.cout * pourcentage) / 100, 2);
} }
async vente(item) {
const acheteur = RdDUtility.getSelectedActor();
if (!acheteur) {
ui.notifications.warn(`Pas d'acheteur sélectionné`);
return;
}
const disponible = this.getQuantiteDisponible(item)
if (disponible == 0) {
ui.notifications.warn(`${this.getAlias()} n'a plus de ${item.name} en vente`);
return;
}
await DialogItemAchat.onAcheter({
item,
vendeur: this,
acheteur,
quantiteIllimite: disponible == undefined,
nbLots: disponible ?? 1,
tailleLot: 1,
prixLot: item.calculerPrixCommercant()
});
}
} }

View File

@@ -12,14 +12,18 @@ export class ExportScriptarium {
} }
constructor() { constructor() {
Hooks.on("getActorDirectoryFolderContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) }) //Hooks.on("getActorDirectoryFolderContext", (actorDirectory, menus) => { ExportScriptarium.INSTANCE.onActorDirectoryMenu(actorDirectory, menus) })
Hooks.on("getActorDirectoryEntryContext", (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) { onActorDirectoryMenu(actorDirectory, menus) {
// DEBUG console.log("ExportScriptarium.onActorDirectoryMenu", actorDirectory, menus)
menus.push({ menus.push({
name: 'Export Personnages <i class="fa-regular fa-file-csv"></i>', name: 'Export Personnages',
icon: IMG_SCRIPTARIUM, icon: '<i class="fa-solid fa-download"></i>', //IMG_SCRIPTARIUM,
condition: (target) => game.user.isGM && condition: (target) => game.user.isGM &&
OptionsAvancees.isUsing(EXPORT_CSV_SCRIPTARIUM) && OptionsAvancees.isUsing(EXPORT_CSV_SCRIPTARIUM) &&
this.$getActors(actorDirectory, target).length > 0, this.$getActors(actorDirectory, target).length > 0,
@@ -28,22 +32,28 @@ export class ExportScriptarium {
} }
$getTargetName(actorDirectory, target) { $getTargetName(actorDirectory, target) {
target = $(target)
const li = target.closest(".directory-item") const li = target.closest(".directory-item")
const folderId = li.data("folderId") const folderId = li.data("folderId")
const actorId = li.data("documentId") const actorId = li.data("entryId")
return actorId return actorId
? game.actors.get(actorId).name ? 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) { $getActors(actorDirectory, target) {
if (actorDirectory.id != "actors") {
return []
}
// DEBUG console.log("ExportScriptarium.$getActors", actorDirectory, target)
target = $(target)
const li = target.closest(".directory-item") const li = target.closest(".directory-item")
const folderId = li.data("folderId") const folderId = li.data("folderId")
const actorId = li.data("documentId") const actorId = li.data("entryId")
const actors = actorId const actors = actorId
? [game.actors.get(actorId)] ? [game.actors.get(actorId)]
: folderId : 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) 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 actorLines = actors.map(actor => Misc.join(this.getActorLine(actor), ';'))
const data = Misc.join([header, ...actorLines], eol) const data = Misc.join([header, ...actorLines], eol)
const filename = `scriptarium-${targetName?.slugify()}.csv`; 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() { getHeaderLine() {

View File

@@ -53,7 +53,7 @@ export default class RdDItemBaseSheet extends HandlebarsApplicationMixin(foundry
static DEFAULT_OPTIONS = { static DEFAULT_OPTIONS = {
classes: ["fvtt-rdd", "item"], classes: ["fvtt-rdd", "item"],
position: { position: {
width: 600, width: 448,
height: "auto", height: "auto",
}, },
form: { form: {

View File

@@ -13,7 +13,7 @@ export default class RdDMonnaieSheet extends RdDItemBaseSheet {
RdDItemBaseSheet.DEFAULT_OPTIONS, RdDItemBaseSheet.DEFAULT_OPTIONS,
{ {
classes: ["fvtt-rdd", "item", "monnaie"], classes: ["fvtt-rdd", "item", "monnaie"],
position: { width: 400 }, position: { width: 448 },
window: { contentClasses: ["monnaie-content"] } window: { contentClasses: ["monnaie-content"] }
}) })

View File

@@ -12,7 +12,7 @@ export default class RdDMunitionSheet extends RdDItemBaseSheet {
RdDItemBaseSheet.DEFAULT_OPTIONS, RdDItemBaseSheet.DEFAULT_OPTIONS,
{ {
classes: ["fvtt-rdd", "item", "munition"], classes: ["fvtt-rdd", "item", "munition"],
position: { width: 400 }, position: { width: 448 },
window: { contentClasses: ["munition-content"] } window: { contentClasses: ["munition-content"] }
}) })

View File

@@ -12,7 +12,7 @@ export default class RdDTarotSheet extends RdDItemBaseSheet {
RdDItemBaseSheet.DEFAULT_OPTIONS, RdDItemBaseSheet.DEFAULT_OPTIONS,
{ {
classes: ["fvtt-rdd", "item", "tarot"], classes: ["fvtt-rdd", "item", "tarot"],
position: { width: 400 }, position: { width: 448 },
window: { contentClasses: ["tarot-content"] } window: { contentClasses: ["tarot-content"] }
}) })

View File

@@ -1,7 +1,11 @@
import { RdDItem } from "../item.js"; import { RdDItem } from "../item.js";
export default class RdDItemMonnaie extends RdDItem { export default class RdDItemMonnaie extends RdDItem {
static get defaultIcon() {
return 'systems/foundryvtt-reve-de-dragon/icons/objets/piece_etain_poisson.webp' constructor(data, context) {
if (!data.img) {
data.img = 'systems/foundryvtt-reve-de-dragon/icons/objets/piece_etain_poisson.webp'
}
super(data, context);
} }
} }

View File

@@ -2,6 +2,6 @@ import { RdDItem } from "../item.js";
export default class RdDItemTarot extends RdDItem { export default class RdDItemTarot extends RdDItem {
static get defaultIcon() { static get defaultIcon() {
return 'systems/foundryvtt-reve-de-dragon/icons/objets/tarot.webp' return 'systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp'
} }
} }

View File

@@ -4,8 +4,7 @@ import { Misc } from "../misc.js"
export const ACTION_ITEM_ENCHANTER = { export const ACTION_ITEM_ENCHANTER = {
code: 'item-enchanter', label: 'Enchanter', icon: it => 'fa-solid fa-sparkles', code: 'item-enchanter', label: 'Enchanter', icon: it => 'fa-solid fa-sparkles',
filter: it => game.user.isGM || DialogEnchanter.isEnchantable(it), filter: it => game.user.isGM || DialogEnchanter.isEnchantable(it) && it.parent?.type != ACTOR_TYPES.commerce,
optionsFilter: options => options.editable,
action: (item, actor) => DialogEnchanter.enchanter(item) action: (item, actor) => DialogEnchanter.enchanter(item)
} }

View File

@@ -78,6 +78,8 @@ export const defaultItemImg = {
souffle: "systems/foundryvtt-reve-de-dragon/icons/souffle_dragon.webp", souffle: "systems/foundryvtt-reve-de-dragon/icons/souffle_dragon.webp",
tarot: "systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp", tarot: "systems/foundryvtt-reve-de-dragon/icons/tarots/dos-tarot.webp",
tete: "systems/foundryvtt-reve-de-dragon/icons/tete_dragon.webp", tete: "systems/foundryvtt-reve-de-dragon/icons/tete_dragon.webp",
monnaie:"systems/foundryvtt-reve-de-dragon/icons/objets/piece_etain_poisson.webp",
munition: "systems/foundryvtt-reve-de-dragon/icons/objets/fleche.webp"
} }
/* -------------------------------------------- */ /* -------------------------------------------- */

View File

@@ -1,3 +1,4 @@
import { ACTOR_TYPES } from "../constants.js"
import { Misc } from "../misc.js" import { Misc } from "../misc.js"
import { RdDSheetUtility } from "../rdd-sheet-utility.js" import { RdDSheetUtility } from "../rdd-sheet-utility.js"
import { RdDUtility } from "../rdd-utility.js" import { RdDUtility } from "../rdd-utility.js"
@@ -14,22 +15,21 @@ const _SPACEHOLDER = { placeholder: true }
const _VENDRE = { const _VENDRE = {
code: 'item-vendre', label: 'Vendre ou donner', icon: it => 'fa-solid fa-comments-dollar', code: 'item-vendre', label: 'Vendre ou donner', icon: it => 'fa-solid fa-comments-dollar',
filter: it => Misc.toInt(it.system.quantite) > 0, filter: it => Misc.toInt(it.system.quantite) > 0,
optionsFilter: options => options.editable,
action: (item, actor) => item.proposerVente() action: (item, actor) => item.proposerVente()
} }
const _ACHAT_SERVICE = { const _ACHETER = {
code: 'item-service-acheter', label: 'Acheter', icon: it => 'fa-regular fa-coins', code: 'item-acheter', label: 'Acheter', icon: it => 'fa-regular fa-coins',
//filter: it => Misc.toInt(it.system.quantite) > 0, filter: it => Misc.toInt(it.system.quantite) > 0 && it.parent?.type == ACTOR_TYPES.commerce,
//optionsFilter: options => options.editable, action: (item, actor) => actor.vente(item)
//action: (item, actor) => item.proposerVente()
} }
const _MONTRER = { const _MONTRER = {
code: 'item-montrer', label: 'Montrer', icon: it => 'fa-solid fa-comment', code: 'item-montrer', label: 'Montrer', icon: it => 'fa-solid fa-comment',
allowLimited: true,
action: (item, actor) => item.postItemToChat() action: (item, actor) => item.postItemToChat()
} }
const _SPLIT = { const _SPLIT = {
code: 'item-split', label: 'Séparer le goupe', icon: it => 'fa-solid fa-unlink', 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) action: (item, actor) => RdDSheetUtility.splitItem(item, actor)
} }
@@ -39,7 +39,7 @@ const _EDIT = {
} }
const _DELETE = { const _DELETE = {
code: 'item-delete', label: 'Supprimer', icon: it => 'fa-solid fa-trash', 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) action: (item, actor) => RdDUtility.confirmActorItemDelete(item, actor)
} }
const _EQUIPER = { const _EQUIPER = {
@@ -51,30 +51,25 @@ const _EQUIPER = {
const _CUISINER = { const _CUISINER = {
code: 'item-cuisiner', label: 'Cuisiner', icon: it => 'fa-solid fa-utensils', code: 'item-cuisiner', label: 'Cuisiner', icon: it => 'fa-solid fa-utensils',
filter: it => it.getUtilisation() == 'cuisine' && it.system.sust > 0, filter: it => it.getUtilisation() == 'cuisine' && it.system.sust > 0,
optionsFilter: options => options.editable,
action: (item, actor) => actor.preparerNourriture(item) action: (item, actor) => actor.preparerNourriture(item)
} }
const _MANGER_CRU = { const _MANGER_CRU = {
code: 'item-manger-cru', label: 'Manger cru', icon: it => 'fa-solid fa-drumstick-bite', code: 'item-manger-cru', label: 'Manger cru', icon: it => 'fa-solid fa-drumstick-bite',
filter: it => it.getUtilisation() == 'cuisine' && it.system.sust > 0, filter: it => it.getUtilisation() == 'cuisine' && it.system.sust > 0,
optionsFilter: options => options.editable,
action: (item, actor) => actor.mangerNourriture(item) action: (item, actor) => actor.mangerNourriture(item)
} }
const _MANGER = { const _MANGER = {
code: 'item-manger', label: 'Manger', icon: it => 'fa-solid fa-utensils', code: 'item-manger', label: 'Manger', icon: it => 'fa-solid fa-utensils',
filter: it => !(it.system.boisson), filter: it => !(it.system.boisson),
optionsFilter: options => options.editable,
action: (item, actor) => actor.mangerNourriture(item) action: (item, actor) => actor.mangerNourriture(item)
} }
const _BOIRE = { const _BOIRE = {
code: 'item-boire', label: 'Boire', icon: it => 'fa-solid fa-glass-water', code: 'item-boire', label: 'Boire', icon: it => 'fa-solid fa-glass-water',
filter: it => it.system.boisson, filter: it => it.system.boisson,
optionsFilter: options => options.editable,
action: (item, actor) => actor.mangerNourriture(item) action: (item, actor) => actor.mangerNourriture(item)
} }
const _DECOCTION = { const _DECOCTION = {
code: 'item-decoction', label: 'Décoction', icon: it => 'fa-solid fa-flask-vial', code: 'item-decoction', label: 'Décoction', icon: it => 'fa-solid fa-flask-vial',
optionsFilter: options => options.editable,
action: (item, actor) => actor.fabriquerDecoctionHerbe(item) action: (item, actor) => actor.fabriquerDecoctionHerbe(item)
} }
const _OUVRIR = { const _OUVRIR = {
@@ -84,14 +79,12 @@ const _OUVRIR = {
const _LIRE = { const _LIRE = {
code: 'item-lire', label: 'Lire', icon: it => 'fa-solid fa-book-open', code: 'item-lire', label: 'Lire', icon: it => 'fa-solid fa-book-open',
optionsFilter: options => options.editable,
action: (item, actor) => actor.actionLire(item) action: (item, actor) => actor.actionLire(item)
} }
const _REFOULER = { const _REFOULER = {
code: 'item-refouler', label: 'Refouler', icon: it => 'fa-solid fa-burst', code: 'item-refouler', label: 'Refouler', icon: it => 'fa-solid fa-burst',
filter: it => it.system.refoulement > 0, filter: it => it.system.refoulement > 0,
optionsFilter: options => options.editable,
action: (item, actor) => actor.actionRefoulement(item) action: (item, actor) => actor.actionRefoulement(item)
} }
@@ -102,7 +95,7 @@ const _SORT_RESERVE = {
} }
export const COMMON_ACTIONS = [_EQUIPER] 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 = { export const ITEM_ACTIONS = {
faune: [_CUISINER, _MANGER_CRU], faune: [_CUISINER, _MANGER_CRU],
@@ -114,17 +107,16 @@ export const ITEM_ACTIONS = {
ombre: [_REFOULER], ombre: [_REFOULER],
plante: [_CUISINER, _MANGER_CRU], plante: [_CUISINER, _MANGER_CRU],
queue: [_REFOULER], queue: [_REFOULER],
sort: [_SORT_RESERVE], sort: [_SORT_RESERVE]
service: [_ACHAT_SERVICE]
} }
export class ItemAction { export class ItemAction {
static applies(action, item, options) { static applies(action, item, options) {
return action && item return action && item
&& item.isActionAllowed(action.code) && item.isActionAllowed(action.code)
&& (!action.filter || action.filter(item)) && (!action.filter || action.filter(item))
&& (action.allowLimited || options.editable)
&& (!action.optionsFilter || action.optionsFilter(options)) && (!action.optionsFilter || action.optionsFilter(options))
} }
@@ -136,10 +128,10 @@ export class ItemAction {
} }
static async onActionItem(event, actor, options) { static async onActionItem(event, actor, options) {
const item = RdDSheetUtility.getItem(event, actor)
const code = $(event.currentTarget).data('code') const code = $(event.currentTarget).data('code')
const item = RdDSheetUtility.getItem(event, actor)
const action = item?.itemActions().find(it => it.code == code) 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) await action.action(item, actor)
} }
} }

View File

@@ -8,6 +8,7 @@ import { RdDTimestamp } from "./time/rdd-timestamp.js";
import { RdDRaretes } from "./item/raretes.js"; import { RdDRaretes } from "./item/raretes.js";
import { VOIES_DRACONIC } from "./item-sort.js"; import { VOIES_DRACONIC } from "./item-sort.js";
import { SystemCompendiums } from "./settings/system-compendiums.js"; import { SystemCompendiums } from "./settings/system-compendiums.js";
import { Misc } from "./misc.js";
class Migration { class Migration {
get code() { return "sample"; } get code() { return "sample"; }
@@ -631,13 +632,37 @@ class _12_0_38_TachesEcriture extends Migration {
async migrate() { async migrate() {
await this.applyItemsUpdates(items => items await this.applyItemsUpdates(items => items
.filter(it => [ITEM_TYPES.tache, ITEM_TYPES.livre, ITEM_TYPES.oeuvre, ITEM_TYPES.meditation].includes(it.type) ) .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 => Grammar.equalsInsensitive(it.system.competence, 'ecriture'))
.map(it => { return { _id: it.id, 'system.competence': 'Écriture' } }) .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 { export class Migrations {
static getMigrations() { static getMigrations() {
return [ return [
@@ -660,7 +685,9 @@ export class Migrations {
new _12_0_26_MigrationVoieSorts(), new _12_0_26_MigrationVoieSorts(),
new _12_0_32_MigrationRaces(), new _12_0_32_MigrationRaces(),
new _12_0_37_MigrationAlchimieEtat(), 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(),
]; ];
} }

View File

@@ -17,23 +17,23 @@ import { RdDRollResult } from "./rdd-roll-result.js";
/* -------------------------------------------- */ /* -------------------------------------------- */
const premierRoundInit = [ const premierRoundInit = [
{ pattern: 'hast', init: 5.90 }, { pattern: 'hast' },
{ pattern: 'lance', init: 5.85 }, { pattern: 'lance' },
{ pattern: 'baton', init: 5.80 }, { pattern: 'baton' },
{ pattern: 'doubledragonne', init: 5.75 }, { pattern: 'doubledragonne' },
{ pattern: 'esparlongue', init: 5.70 }, { pattern: 'esparlongue' },
{ pattern: 'epeedragonne', init: 5.65 }, { pattern: 'epeedragonne' },
{ pattern: 'epeebatarde', init: 5.60 }, { pattern: 'epeebatarde' },
{ pattern: 'epeecyane', init: 5.55 }, { pattern: 'epeecyane' },
{ pattern: 'epeesorde', init: 5.50 }, { pattern: 'epeesorde' },
{ pattern: 'grandehache', init: 5.45 }, { pattern: 'grandehache' },
{ pattern: 'bataille', init: 5.40 }, { pattern: 'bataille' },
{ pattern: 'epeegnome', init: 5.35 }, { pattern: 'epeegnome' },
{ pattern: 'masse', init: 5.30 }, { pattern: 'masse' },
{ pattern: 'gourdin', init: 5.25 }, { pattern: 'gourdin' },
{ pattern: 'fleau', init: 5.20 }, { pattern: 'fleau' },
{ pattern: 'dague', init: 5.15 }, { pattern: 'dague' },
{ pattern: 'autre', init: 5.10 }, { 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("updateCombat", (combat, change, options, userId) => { RdDCombat.onUpdateCombat(combat, change, options, userId) });
Hooks.on("preDeleteCombat", (combat, html, id) => { combat.onPreDeleteCombat() }) Hooks.on("preDeleteCombat", (combat, html, id) => { combat.onPreDeleteCombat() })
Hooks.on("deleteCombat", (combat, html, id) => { combat.onDeleteCombat() }) 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 = {}) { async rollInitiative(ids, messageOptions = {}) {
console.log(`${game.system.title} | Combat.rollInitiative()`, ids, messageOptions) console.log(`${game.system.title} | Combat.rollInitiative()`, ids, messageOptions)
ids = typeof ids === "string" ? [ids] : ids ids = typeof ids === "string" ? [ids] : ids
ids.forEach(async id => Promise.all(ids.map(id => this.rollInitRdD(id, undefined, messageOptions)))
await this.rollInitRdD(id, undefined, messageOptions)
)
return this return this
} }
@@ -251,19 +253,20 @@ export class RdDCombatManager extends Combat {
let initMissing = game.combat.combatants.find(it => !it.initiative); let initMissing = game.combat.combatants.find(it => !it.initiative);
if (!initMissing) { // Premier round ! if (!initMissing) { // Premier round !
for (let combatant of game.combat.combatants) { for (let combatant of game.combat.combatants) {
let action = combatant.initiativeData?.arme; if (combatant.initiativeData?.arme?.type == "arme") {
//console.log("Parsed !!!", combatant, initDone, game.combat.current, arme); // TODO: get init data premier round
if (action && action.type == "arme") { const initiativeData = combatant.initiativeData;
for (let initData of premierRoundInit) { const action = combatant.initiativeData.arme;
if (Grammar.toLowerCaseNoAccentNoSpace(action.system.initpremierround).includes(initData.pattern)) { const fromArme = Grammar.toLowerCaseNoAccentNoSpace(action.system.initpremierround)
let msg = `<h4>L'initiative de ${combatant.actor.getAlias()} a été modifiée !</h4> 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> <hr>
<div> <div>
Etant donné son ${action.name}, son initative pour ce premier round est désormais de ${initData.init}. Etant donné son ${action.name}, son initative pour ce premier round est désormais de ${initData.init}.
</div>` </div>`
ChatMessage.create({ content: msg }); ChatMessage.create({ content: msg });
game.combat.setInitiative(combatant._id, initData.init); game.combat.setInitiative(combatant._id, initData.init);
}
} }
} }
} }
@@ -297,7 +300,7 @@ export class RdDCombatManager extends Combat {
].concat(options); ].concat(options);
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static rollInitiativeAction(combatantId, action) { static async rollInitiativeAction(combatantId, action) {
const combatant = game.combat.combatants.get(combatantId) const combatant = game.combat.combatants.get(combatantId)
const actor = RdDCombatManager.getActorCombatant(combatant) const actor = RdDCombatManager.getActorCombatant(combatant)
if (actor == undefined) { return [] } if (actor == undefined) { return [] }
@@ -308,7 +311,8 @@ export class RdDCombatManager extends Combat {
const ajustement = RdDCombatManager.calculAjustementInit(actor, action) const ajustement = RdDCombatManager.calculAjustementInit(actor, action)
const rollFormula = RdDCombatManager.formuleInitiative(init.offset, init.carac, init.niveau, ajustement); 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) { static getInitData(actor, action) {

View File

@@ -40,7 +40,7 @@ export class RdDRoll extends Dialog {
etat: actor.getEtatGeneral(), etat: actor.getEtatGeneral(),
moral: actor.getMoralTotal(), /* La valeur du moral pour les jets de volonté */ moral: actor.getMoralTotal(), /* La valeur du moral pour les jets de volonté */
amoureux: actor.listeSuivants(it => it.coeur > 0), amoureux: actor.listeSuivants(it => it.coeur > 0),
carac: actor.system.carac, carac: foundry.utils.duplicate(actor.system.carac),
finalLevel: 0, finalLevel: 0,
diffConditions: 0, diffConditions: 0,
diffLibre: rollData.competence?.system.default_diffLibre ?? 0, diffLibre: rollData.competence?.system.default_diffLibre ?? 0,

View File

@@ -1,7 +1,7 @@
import { SHOW_DICE, SYSTEM_RDD } from "./constants.js"; import { SHOW_DICE, SYSTEM_RDD } from "./constants.js";
import { RollDataAjustements } from "./rolldata-ajustements.js"; import { RollDataAjustements } from "./rolldata-ajustements.js";
import { RdDUtility } from "./rdd-utility.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 { RdDResolutionTable } from "./rdd-resolution-table.js";
import { RdDTMRRencontreDialog } from "./rdd-tmr-rencontre-dialog.js"; import { RdDTMRRencontreDialog } from "./rdd-tmr-rencontre-dialog.js";
import { ChatUtility } from "./chat-utility.js"; import { ChatUtility } from "./chat-utility.js";
@@ -996,6 +996,10 @@ export class RdDTMRDialog extends Dialog {
const targetOddq = this.pixiTMR.computeEventOddq(event) const targetOddq = this.pixiTMR.computeEventOddq(event)
const targetCoord = TMRUtility.oddqToCoordTMR(targetOddq) 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) // Validation de la case de destination (gestion du cas des rencontres qui peuvent téléporter)
const typeDeplacement = this._calculDeplacement(targetCoord, currentCoord, currentOddq, targetOddq); const typeDeplacement = this._calculDeplacement(targetCoord, currentCoord, currentOddq, targetOddq);

View File

@@ -1,6 +1,5 @@
/* -------------------------------------------- */ /* -------------------------------------------- */
import { HtmlUtility } from "./html-utility.js"; import { HtmlUtility } from "./html-utility.js";
import { Misc } from "./misc.js";
import { RdDCombatManager } from "./rdd-combat.js"; import { RdDCombatManager } from "./rdd-combat.js";
import { Targets } from "./targets.js"; import { Targets } from "./targets.js";
@@ -89,7 +88,7 @@ export class RdDTokenHud {
if (target?.actor) { if (target?.actor) {
const hudSoins = { blessures: target.actor.blessuresASoigner() ?? [] }; const hudSoins = { blessures: target.actor.blessuresASoigner() ?? [] };
if (hudSoins.blessures.length > 0) { 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, await RdDTokenHud._configureSubMenu(controlIconTarget,
'systems/foundryvtt-reve-de-dragon/templates/hud-actor-soins.hbs', 'systems/foundryvtt-reve-de-dragon/templates/hud-actor-soins.hbs',
hudSoins, hudSoins,
@@ -112,6 +111,7 @@ export class RdDTokenHud {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async addTokenHudExtensions(app, html, tokenId) { static async addTokenHudExtensions(app, html, tokenId) {
console.log(`Adding token HUD extensions for token ${tokenId}`);
const controlIconCombat = $(html).find('.control-icon[data-action=combat]'); const controlIconCombat = $(html).find('.control-icon[data-action=combat]');
if (controlIconCombat.length > 0) { if (controlIconCombat.length > 0) {
controlIconCombat.click(event => { controlIconCombat.click(event => {
@@ -129,7 +129,7 @@ export class RdDTokenHud {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async _configureSubMenu(insertionPoint, template, hudData, onMenuItem) { static async _configureSubMenu(insertionPoint, template, hudData, onMenuItem) {
const hud = $(await renderTemplate(template, hudData)); const hud = $(await foundry.applications.handlebars.renderTemplate(template, hudData));
const list = hud.find('div.rdd-hud-list'); const list = hud.find('div.rdd-hud-list');
RdDTokenHud._toggleHudListActive(hud, list); RdDTokenHud._toggleHudListActive(hud, list);

View File

@@ -4,7 +4,7 @@ import { Misc } from "../misc.js"
export const EXPORT_CSV_SCRIPTARIUM = 'export-csv-scriptarium' export const EXPORT_CSV_SCRIPTARIUM = 'export-csv-scriptarium'
const OPTIONS_AVANCEES = [ 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 { export class OptionsAvancees extends FormApplication {
@@ -24,10 +24,6 @@ export class OptionsAvancees extends FormApplication {
}) })
} }
constructor(...args) {
super(...args)
}
static _getId(name) { static _getId(name) {
return `rdd-advanced-${name}` return `rdd-advanced-${name}`
} }

View File

@@ -15,6 +15,8 @@ const TEMPLATE_CALENDRIER = "systems/foundryvtt-reve-de-dragon/templates/time/ca
const INITIAL_CALENDAR_POS = { top: 200, left: 200, horlogeAnalogique: true }; const INITIAL_CALENDAR_POS = { top: 200, left: 200, horlogeAnalogique: true };
/* -------------------------------------------- */ /* -------------------------------------------- */
export class RdDCalendrier extends Application { export class RdDCalendrier extends Application {
static _warnedAppV1 = true
static initSettings() { static initSettings() {
game.settings.register(SYSTEM_RDD, "liste-nombre-astral", { game.settings.register(SYSTEM_RDD, "liste-nombre-astral", {
name: "liste-nombre-astral", name: "liste-nombre-astral",

View File

@@ -2,6 +2,9 @@ import { Misc } from "./misc.js";
import { Grammar } from "./grammar.js"; import { Grammar } from "./grammar.js";
import { RdDDice } from "./rdd-dice.js"; import { RdDDice } from "./rdd-dice.js";
const TMR_INCONNU = "inconnu"
export const COORD_TMR_INCONNU = "A0"
export const TMRType = { export const TMRType = {
cite: { type: 'cite', name: "cité", genre: "f" }, cite: { type: 'cite', name: "cité", genre: "f" },
sanctuaire: { type: 'sanctuaire', name: "sanctuaire", genre: 'm' }, sanctuaire: { type: 'sanctuaire', name: "sanctuaire", genre: 'm' },
@@ -16,13 +19,15 @@ export const TMRType = {
marais: { type: 'marais', name: "marais", genre: "m" }, marais: { type: 'marais', name: "marais", genre: "m" },
gouffre: { type: 'gouffre', name: "gouffre", genre: "m" }, gouffre: { type: 'gouffre', name: "gouffre", genre: "m" },
necropole: { type: 'necropole', name: "nécropole", genre: "f" }, 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' export const FLEUVE_COORD = 'Fleuve'
const TMRMapping = { const TMRMapping = {
Fleuve: { type: TMRType.fleuve.type, label: "Fleuve de l'Oubli", generique: 'fleuve' }, 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" }, A1: { type: TMRType.cite.type, label: "Cité Vide" },
B1: { type: TMRType.plaines.type, label: "Plaines dAssorh" }, B1: { type: TMRType.plaines.type, label: "Plaines dAssorh" },
C1: { type: TMRType.necropole.type, label: "Nécropole de Kroak" }, C1: { type: TMRType.necropole.type, label: "Nécropole de Kroak" },
@@ -272,7 +277,7 @@ export class TMRUtility {
} }
static getTMRType(coord) { static getTMRType(coord) {
const tmr = TMRUtility.getTMR(coord); const tmr = TMRUtility.getTMR(coord)
return Misc.upperFirst(TMRType[tmr.type].name); return Misc.upperFirst(TMRType[tmr.type].name);
} }

View File

@@ -13,7 +13,7 @@ export class Conquete extends Draconique {
async onActorCreateOwned(actor, item) { await this._creerConquete(actor, item); } async onActorCreateOwned(actor, item) { await this._creerConquete(actor, item); }
code() { return 'conquete' } 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' } img() { return 'systems/foundryvtt-reve-de-dragon/icons/tmr/conquete.svg' }
createSprite(pixiTMR) { createSprite(pixiTMR) {

View File

@@ -1,5 +1,5 @@
import { ITEM_TYPES } from "../constants.js"; 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"; import { PixiTMR } from "./pixi-tmr.js";
const registeredEffects = [ const registeredEffects = [
@@ -12,7 +12,7 @@ export class Draconique {
static init() { 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 isQueueDragon(item) { return item.isQueueDragon(); }
static isSouffleDragon(item) { return item.type == ITEM_TYPES.souffle; } static isSouffleDragon(item) { return item.type == ITEM_TYPES.souffle; }
static isTeteDragon(item) { return item.type == ITEM_TYPES.tete; } static isTeteDragon(item) { return item.type == ITEM_TYPES.tete; }
@@ -127,7 +127,7 @@ export class Draconique {
* @param {*} coord les coordonnées d'une case. Si undefined toute case du type correspondra, * @param {*} coord les coordonnées d'une case. Si undefined toute case du type correspondra,
*/ */
isCase(item, coord = undefined) { 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) { find(list, coord = undefined) {
@@ -150,7 +150,7 @@ export class Draconique {
} }
isCaseForSource(item, 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) { async onVisiteSupprimer(actor, tmr, onRemoveToken) {

View File

@@ -1,6 +1,6 @@
import { Grammar } from "../grammar.js"; import { Grammar } from "../grammar.js";
import { tmrTokenZIndex } from "../tmr-constants.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"; import { Draconique } from "./draconique.js";
export class QueteEaux extends Draconique { 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"); } 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" } manualMessage() { return "Vous devrez re-configurer votre Nouvelle Quête des Eaux une fois un lac ou marais vaincu" }
async onActorCreateOwned(actor, tete) { 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' } 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' } img() { return 'systems/foundryvtt-reve-de-dragon/icons/tmr/maitrisee.svg' }
createSprite(pixiTMR) { createSprite(pixiTMR) {

View File

@@ -1,5 +1,6 @@
import { Grammar } from "../grammar.js"; import { Grammar } from "../grammar.js";
import { tmrTokenZIndex } from "../tmr-constants.js"; import { tmrTokenZIndex } from "../tmr-constants.js";
import { COORD_TMR_INCONNU } from "../tmr-utility.js";
import { Draconique } from "./draconique.js"; import { Draconique } from "./draconique.js";
export class TerreAttache extends Draconique { 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" } manualMessage() { return "Vous pouvez re-configurer votre Nouvelle Terre d'attache" }
async onActorCreateOwned(actor, tete) { 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' } code() { return 'attache' }

View File

@@ -3,8 +3,8 @@ type: faune
img: systems/foundryvtt-reve-de-dragon/icons/faune/ours.webp img: systems/foundryvtt-reve-de-dragon/icons/faune/ours.webp
system: system:
description: >- description: >-
<p>Ours. For&ecirc;t, montagne, 300 kg, 600 sust.Surtout recherch&eacute; <p>Ours. For&ecirc;t, montagne, 300 kg, 600 sust. Surtout recherch&eacute;
pour sa peau (voir legrizzal, p405).</p> pour sa peau (voir le grizzal, p405).</p>
descriptionmj: '' descriptionmj: ''
encombrement: 150 encombrement: 150
quantite: 1 quantite: 1

View File

@@ -811,7 +811,7 @@
}, },
"musique": { "musique": {
"templates": ["description"], "templates": ["description"],
"niveau": "", "niveau": 0,
"reference": "" "reference": ""
}, },
"danse": { "danse": {
@@ -819,12 +819,12 @@
"type": "", "type": "",
"agilite": false, "agilite": false,
"apparence": false, "apparence": false,
"niveau": "", "niveau": 0,
"reference": "" "reference": ""
}, },
"chant": { "chant": {
"templates": ["description"], "templates": ["description"],
"niveau": "", "niveau": 0,
"reference": "" "reference": ""
}, },
"jeu": { "jeu": {
@@ -836,7 +836,7 @@
}, },
"recettecuisine": { "recettecuisine": {
"templates": ["description"], "templates": ["description"],
"niveau": "", "niveau": 0,
"ingredients": "", "ingredients": "",
"duree": "", "duree": "",
"sust": 0, "sust": 0,

View File

@@ -13,22 +13,22 @@
<label class="carac-xp"/> <label class="carac-xp"/>
{{else}} {{else}}
{{#if carac.isLevelUp}} {{#if carac.isLevelUp}}
<span class="carac-label tooltip" name="system.carac.{{key}}.label"> <span class="carac-label" 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>
<a name={{key}}>{{carac.label}}</a> <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> <i class="fas fa-arrow-alt-circle-up"></i>
</a> </a>
</span> </span>
{{else}} {{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}} {{/if}}
<input class="carac-value" type="number" name="system.carac.{{key}}.value" value="{{carac.value}}" data-dtype="number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} /> <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"> <span class="carac-xp">
<input class="carac-xp" type="number" name="system.carac.{{key}}.xp" value="{{carac.xp}}" data-dtype="number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} /> <input class="carac-xp" type="number" name="system.carac.{{key}}.xp" value="{{carac.xp}}" data-dtype="number"
<span class="tooltiptext ttt-xp">Vous devez acquérir {{carac.xpNext}} points d'Experience pour augmenter de 1 votre {{carac.label}}</span> data-tooltip="Vous devez acquérir {{carac.xpNext}} points d'Experience pour augmenter votre {{carac.label}}"
{{#unless @root.options.vueDetaillee}}disabled{{/unless}}
/>
</span> </span>
{{/if}} {{/if}}
{{/if}} {{/if}}

View File

@@ -1,7 +1,7 @@
{{#unless item.system.isHidden}} {{#unless item.system.isHidden}}
{{#if (ne item.type 'monnaie')}} {{#if (ne item.type 'monnaie')}}
<li class="item flexrow list-item" data-item-id="{{item._id}}" draggable="true"> <li class="item flexrow list-item" data-item-id="{{item._id}}" draggable="true">
<span class="equipement-nom {{#if (eq item.type 'conteneur')}}conteneur-name{{/if}} "> <span class="equipement-nom{{#if (eq item.type 'conteneur')}} conteneur-name{{/if}} ">
<a{{#if (and (ne item.type 'conteneur') options.isObserver)}} class="item-edit"{{/if}} > <a{{#if (and (ne item.type 'conteneur') options.isObserver)}} class="item-edit"{{/if}} >
{{#if (eq item.type 'conteneur')}} {{#if (eq item.type 'conteneur')}}
<i class="{{~#if vide}}far fa-square <i class="{{~#if vide}}far fa-square

View File

@@ -16,13 +16,13 @@
{{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} /> {{#if (or (not @root.options.vueDetaillee) @root.options.vueArchetype)}}disabled{{/if}} />
{{#if @root.options.vueDetaillee}} {{#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}}" <input class="competence-xp " type="text" compname="{{name}}" name="comp-xp-{{name}}"
value="{{numberFormat system.xp decimals=0 sign=false}}" data-dtype="number" 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}} /> {{#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> </span>
{{/if}} {{/if}}
{{#if (eq system.categorie 'draconic')}} {{#if (eq system.categorie 'draconic')}}

View File

@@ -7,7 +7,7 @@
<div> <div>
<h1 class="charname">{{name}}</h1> <h1 class="charname">{{name}}</h1>
</div> </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-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-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> <a class="button-ethylisme"><img class="button-img" src="icons/svg/tankard.svg" data-tooltip="Boire"/></a>

View File

@@ -1,7 +1,7 @@
{{#unless item.system.isHidden}} {{#unless item.system.isHidden}}
{{#if (or options.isObserver (ne item.type 'monnaie'))}} {{#if (or options.isObserver (ne item.type 'monnaie'))}}
<li class="item flexrow list-item" data-item-id="{{item._id}}" draggable="true" data-tooltip="{{#if (gt item.system.quantite 1)}}{{item.system.quantite}} {{/if}}{{item.name}}"> <li class="item flexrow list-item" data-item-id="{{item._id}}" draggable="true" data-tooltip="{{#if (gt item.system.quantite 1)}}{{item.system.quantite}} {{/if}}{{item.name}}">
<span class="equipement-nom flexrow {{#if (eq item.type 'conteneur')}}conteneur-name{{/if}} "> <span class="equipement-nom {{#if (eq item.type 'conteneur')}}conteneur-name{{/if}} ">
{{#if (eq item.type 'conteneur')}} {{#if (eq item.type 'conteneur')}}
<a> <a>
<i class="{{~#if vide}}far fa-square <i class="{{~#if vide}}far fa-square

View File

@@ -1,5 +1,5 @@
<img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" /> <h4><img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" />
<h4>{{#if isVente}}Achat{{else}}Don{{/if}}</h4> {{#if isVente}}Achat{{else}}Don{{/if}}</h4>
<p> <p>
{{#if acheteur}}{{acheteur.name}}{{else}}L'acheteur{{/if}} a {{#if acheteur}}{{acheteur.name}}{{else}}L'acheteur{{/if}} a
{{#if isVente}}acheté{{else}}pris{{/if}} {{#if isVente}}acheté{{else}}pris{{/if}}

View File

@@ -1,8 +1,10 @@
<img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" /> <h4><img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" />
<h4>{{actor.name}} a gagné de l'expérience</h4> {{actor.name}} a gagné de l'expérience
</h4>
{{#each xpData as |it|}} {{#each xpData as |it|}}
{{#if (gt it.xpCarac 0)}} {{#if (gt it.xpCarac 0)}}
<hr> <hr>
<p>
{{it.xpCarac}} point{{#if (gt it.xpCarac 1)}}s{{/if}} {{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}} {{#if it.caracRepartitionManuelle}}à répartir manuellement dans la caractéristique dérivée{{else}}en{{/if}}
{{it.caracName}}. {{it.caracName}}.
@@ -10,9 +12,11 @@
L'expérience dans cette caractéristique est de {{it.checkCarac.xp}}, elle peut progresser! 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. <br>Vous devez ouvrir votre fiche de personnage et appliquer l'augmentation manuellement.
{{/if}} {{/if}}
</p>
{{/if}} {{/if}}
{{#if (gt it.xpCompetence 0)}} {{#if (gt it.xpCompetence 0)}}
<hr> <hr>
<p>
{{it.xpCompetence}} point{{#if (gt it.xpCompetence 1)}}s{{/if}} en {{it.competence.name}}. {{it.xpCompetence}} point{{#if (gt it.xpCompetence 1)}}s{{/if}} en {{it.competence.name}}.
{{#if it.checkComp}} {{#if it.checkComp}}
L'expérience dans cette compétence est de {{it.checkComp.xp}}, elle peut progresser jusqu'à {{it.checkComp.niveau}}! 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}} {{/if}}
{{/if}} {{/if}}
</p>
{{/if}} {{/if}}
{{/each}} {{/each}}

View File

@@ -1,2 +1,3 @@
<img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" /> <h4><img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" />
<h4>C'est au tour de {{alias}} !</h4> C'est au tour de {{alias}} !
</h4>

View File

@@ -1,13 +1,14 @@
<img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" /> <h4><img class="chat-icon" src="{{actor.img}}" data-tooltip="{{actor.name}}" />
<h4>Résumé de santé pour {{alias}}</h4> Résumé de santé pour {{alias}}
<div data-combatid="{{combatId}}" data-combatmessage="actor-turn-summary">{{blessuresStatus}}</div> </h4>
<div>Son état général est de : {{etatGeneral}} {{#if isSonne}} et est <strong>sonné</strong>{{/if}}</div> <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}} {{#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}}
{{#if isCritique}} {{#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" <a class="chat-card-button chat-jet-vie"
data-tokenId="{{tokenId}}" data-tokenId="{{tokenId}}"
data-actorId="{{actorId}}">Jet de Vie.<a></div> data-actorId="{{actorId}}">Jet de Vie.<a></p>
{{/if}} {{/if}}

View File

@@ -1,14 +1,15 @@
<img class="chat-icon" src="{{rencontre.img}}" data-tooltip="{{rencontre.name}}" /> <h4><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> {{#if mauvaise}}Mauvaise rencontre{{else}}Rencontre{{/if}} en {{typeTmr-name tmr.type}}
<div>{{row.document.pack}}</div> </h4>
<div>Jet: {{row.roll.formula}} : {{row.roll.total}}{{percentages}}</div> <p>{{row.document.pack}}</p>
<p>Jet: {{row.roll.formula}} : {{row.roll.total}}{{percentages}}</p>
<hr> <hr>
<div> <p>
<p>{{rencontre.name}} de force {{rencontre.system.force}} ({{rencontre.system.formule}})</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> <p>{{linkCompendium row.document.pack row.document.id row.document.name}}</p>
{{#if rencontre.system.description}} {{#if rencontre.system.description}}
<div class="poesie-extrait"> <p class="poesie-extrait">
{{{rencontre.system.description}}} {{{rencontre.system.description}}}
</div> </p>
{{/if}} {{/if}}
</div> </p>

View File

@@ -1,21 +1,21 @@
<h4>Tirage aléatoire: {{document.name}}</h4> <h4>Tirage aléatoire: {{document.name}}</h4>
<div> <p>
Tirage de {{typeName}} aléatoire Tirage de {{typeName}} aléatoire
{{#if options.showSource}} depuis {{document.pack}}{{/if}} {{#if options.showSource}} depuis {{document.pack}}{{/if}}
</div> </p>
<div>Jet {{roll.formula}} : {{roll.total}}</div> <p>Jet {{roll.formula}} : {{roll.total}}</p>
<hr> <hr>
<div> <p>
<img class="chat-icon" src="{{document.img}}" data-tooltip="{{document.name}}" /> <img class="chat-icon" src="{{document.img}}" data-tooltip="{{document.name}}" />
<p>{{linkCompendium document.pack document.id document.name}}</p> <p>{{linkCompendium document.pack document.id document.name}}</p>
{{#if document.system.formule}} {{#if document.system.formule}}
<div class="poesie-extrait"> <p class="poesie-extrait">
@roll[{{document.system.formule}}] @roll[{{document.system.formule}}]
</div> </p>
{{/if}} {{/if}}
{{#if document.system.description}} {{#if document.system.description}}
<div class="poesie-extrait"> <p class="poesie-extrait">
{{{document.system.description}}} {{{document.system.description}}}
</div> </p>
{{/if}} {{/if}}
</div> </p>

View File

@@ -1,13 +1,12 @@
<div> <h4><img class="chat-icon" src="{{img}}" data-tooltip="{{typeName}}" />
<img class="chat-icon" src="{{img}}" data-tooltip="{{typeName}}" /> Table aléatoire: {{typeName}}
<h4>Table aléatoire: {{typeName}}</h4> </h4>
{{#with (lookup table 0) as |row|}} {{#with (lookup table 0) as |row|}}
<div> <p>
{{row.document.pack}} {{row.document.pack}}
</div> </p>
{{/with}} {{/with}}
<br> <br>
</div>
<div> <div>
<ul class="flexcol item-list alterne-list"> <ul class="flexcol item-list alterne-list">
{{#each table as |row|}} {{#each table as |row|}}

View File

@@ -1,9 +1,9 @@
<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{{/if}}</strong> {{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée{{/if}}</strong>
</h4> </h4>
<hr> <hr>
<div> <p>
{{#if system.magique}} {{#if system.magique}}
Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}. Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}.
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
@@ -15,4 +15,4 @@
{{/if}} {{/if}}
{{/if}}. {{/if}}.
<br>La potion a été supprimée de l'équipement. <br>La potion a été supprimée de l'équipement.
</div> </p>

View File

@@ -1,9 +1,8 @@
<img class="chat-icon" src="{{img}}" data-tooltip="potion de repos" /> <h4><img class="chat-icon" src="{{img}}" data-tooltip="potion de repos" />
<h4>
{{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée de puissance {{system.puissance}}{{/if}}</strong>. {{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée de puissance {{system.puissance}}{{/if}}</strong>.
</h4> </h4>
<hr> <hr>
<div> <p>
{{#if system.magique}} {{#if system.magique}}
Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}. Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}.
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "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). 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}} {{/if}}
<br>La potion a été supprimée de l'équipement. <br>La potion a été supprimée de l'équipement.
</div> </p>

View File

@@ -1,9 +1,8 @@
<img class="chat-icon" src="{{img}}" data-tooltip="potion de soin" /> <h4><img class="chat-icon" src="{{img}}" data-tooltip="potion de soin" />
<h4>
{{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée de {{system.puissance}} points de guérison{{/if}}</strong> {{alias}} a bu une <strong>{{name}}{{#if system.magique}} enchantée de {{system.puissance}} points de guérison{{/if}}</strong>
</h4> </h4>
<hr> <hr>
<div> <p>
{{#if system.magique}} {{#if system.magique}}
Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}. Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}.
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "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). Lors de votre prochain jet de récupération à Chateau Dormant, vous bénéficierez d'un bonus de {{system.herbebonus}} (appliqué automatiquement).
{{/if}} {{/if}}
<br>La potion a été supprimée de l'équipement. <br>La potion a été supprimée de l'équipement.
</div> </p>

View File

@@ -1,5 +1,4 @@
<img class="chat-icon" src="{{competence.img}}" /> <h4><img class="chat-icon" src="{{competence.img}}" />
<h4>
{{attacker.name}} a entraîné {{defender.name}} au sol {{attacker.name}} a entraîné {{defender.name}} au sol
</h4> </h4>
<hr> <hr>

View File

@@ -1,9 +1,8 @@
<img class="chat-icon" src="{{competence.img}}" /> <h4><img class="chat-icon" src="{{competence.img}}" />
<h4>
{{attacker.name}} a empoigné {{defender.name}} {{attacker.name}} a empoigné {{defender.name}}
</h4> </h4>
<hr> <hr>
<div> <p>
<span class='chat-card-button-area'> <span class='chat-card-button-area'>
{{attacker.name}} vient d'obtenir 2 points d'Emp, et peut {{attacker.name}} vient d'obtenir 2 points d'Emp, et peut
entraîner {{defender.name}} au sol. Les deux protagonistes entraîner {{defender.name}} au sol. Les deux protagonistes
@@ -13,4 +12,4 @@
Entraîner au sol Entraîner au sol
</a> </a>
</span> </span>
</div> </p>

View File

@@ -1,13 +1,10 @@
<img class="chat-icon" src="{{competence.img}}" /> <h4><img class="chat-icon" src="{{competence.img}}" />
<h4>
{{attacker.name}} a empoigné {{defender.name}} {{attacker.name}} a empoigné {{defender.name}}
</h4> </h4>
<hr> <hr>
<div> <p>
<span class='chat-card-button-area'> <span class='chat-card-button-area'>
<p>
{{attacker.name}} a obtenu 2 points d'Emp à la fin du round précédent, et peut: {{attacker.name}} a obtenu 2 points d'Emp à la fin du round précédent, et peut:
<ul><li> <ul><li>
faire perdre des points d'Endurance à {{defender.name}} faire perdre des points d'Endurance à {{defender.name}}
<br> <br>
@@ -30,6 +27,5 @@
</a> </a>
{{/if}} {{/if}}
</li></ul> </li></ul>
</p>
</span> </span>
</div> </p>

View File

@@ -1,8 +1,7 @@
<img class="chat-icon" src="{{competence.img}}" /> <h4><img class="chat-icon" src="{{competence.img}}" />
<h4>
{{attacker.name}} a fait perdre de l'endurance à {{defender.name}} {{attacker.name}} a fait perdre de l'endurance à {{defender.name}}
</h4> </h4>
<hr> <hr>
<div> <p>
{{defender.name}} reste immobilisé. L'empoignade peut continuer. {{defender.name}} reste immobilisé. L'empoignade peut continuer.
</div> </p>

View File

@@ -1,8 +1,7 @@
<img class="chat-icon" src="{{competence.img}}" /> <h4><img class="chat-icon" src="{{competence.img}}" />
<h4>
{{attacker.name}} a projeté {{defender.name}} au sol {{attacker.name}} a projeté {{defender.name}} au sol
</h4> </h4>
<hr> <hr>
<div> <p>
L'empoignade est terminée et a été supprimée. L'empoignade est terminée et a été supprimée.
</div> </p>

View File

@@ -1,5 +1,4 @@
<img class="chat-icon" src="{{competence.img}}" /> <h4><img class="chat-icon" src="{{competence.img}}" />
<h4>
{{#if (eq mode "empoigner")}} {{#if (eq mode "empoigner")}}
{{attacker.name}} tente d'empoigner {{defender.name}} {{attacker.name}} tente d'empoigner {{defender.name}}
{{/if}} {{/if}}
@@ -16,7 +15,7 @@
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{#if (gte empoignade.system.pointsemp 2)}} {{#if (gte empoignade.system.pointsemp 2)}}
@@ -75,4 +74,4 @@
</span> </span>
<br>Points d'Emp: {{empoignade.system.pointsemp}} <br>Points d'Emp: {{empoignade.system.pointsemp}}
{{/if}} {{/if}}
</div> </p>

View File

@@ -1,9 +1,8 @@
<img class="chat-icon" src="{{competence.img}}" /> <h4><img class="chat-icon" src="{{competence.img}}" />
<h4>
{{attacker.name}} tente d'empoigner {{defender.name}} {{attacker.name}} tente d'empoigner {{defender.name}}
</h4> </h4>
<hr> <hr>
<div> <p>
<span class='chat-card-button-area'> <span class='chat-card-button-area'>
<br> <br>
<strong>{{attacker.name}} tente d'empoigner {{defender.name}}, qui est équipé d'une arme de mêlée. {{defender.name}} <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 Poursuivre l'empoignade
</a> </a>
</span> </span>
</div> </p>

View File

@@ -1,15 +1,14 @@
<img class="chat-icon" src="{{herbe.img}}" data-tooltip="fabrication" /> <h4><img class="chat-icon" src="{{herbe.img}}" data-tooltip="fabrication" />
<h4>
{{alias}} a fabriqué une potion de {{herbe.system.categorie}} de {{herbe.name}}, avec {{herbe.nbBrins}} brins. {{alias}} a fabriqué une potion de {{herbe.system.categorie}} de {{herbe.name}}, avec {{herbe.nbBrins}} brins.
</h4> </h4>
<hr> <hr>
<div> <p>
{{#if (eq nbBrinsReste 0)}} {{#if (eq nbBrinsReste 0)}}
Toute l'herbe a été consommée par la potion. L'herbe a été supprimée de l'inventaire. Toute l'herbe a été consommée par la potion. L'herbe a été supprimée de l'inventaire.
{{else}} {{else}}
La quantité d'herbe est désormais de {{nbBrinsReste}} et a été mise à jour automatiquement. La quantité d'herbe est désormais de {{nbBrinsReste}} et a été mise à jour automatiquement.
{{/if}} {{/if}}
</div> </p>
<div> <p>
Pensez à mettre la potion dans une fiole ! Pensez à mettre la potion dans une fiole !
</div> </p>

View File

@@ -1,7 +1,15 @@
<div> <div>
<span {{#if ajustements}}class="tooltip tooltip-dotted" {{/if}}> <span {{#if ajustements}}class="tooltip-overflow tooltip-dotted" {{/if}}>
{{rolled.caracValue}} à {{plusMoins rolled.finalLevel}} <span>
{{#if ajustements}} <span>{{rolled.caracValue}} à {{plusMoins rolled.finalLevel}}</span>
{{#if ajustements}}
{{/if}}
{{#if rolled.factorHtml}}<span class="rdd-diviseur">&times;{{{rolled.factorHtml}}}</span>{{/if}}
<span>= {{rolled.score}}%</span>
{{#if rolled.factorHtml}}
<span class="rdd-diviseur">&times;{{{rolled.factorHtml}}}</span>
{{/if}}
</span>
<div class="tooltiptext ttt-ajustements"> <div class="tooltiptext ttt-ajustements">
{{#each ajustements as |item key|}} {{#each ajustements as |item key|}}
{{#if item.used}} {{#if item.used}}
@@ -15,13 +23,7 @@
{{/if}} {{/if}}
{{/each}} {{/each}}
</div> </div>
{{/if}}
{{#if rolled.factorHtml}}<span class="rdd-diviseur">&times;{{{rolled.factorHtml}}}</span>{{/if}}
</span> </span>
<span>= {{rolled.score}}%</span>
{{#if rolled.factorHtml}}
<span class="rdd-diviseur">&times;{{{rolled.factorHtml}}}</span>
{{/if}}
</div> </div>
<div> <div>
<span>{{rolled.roll}} : </span><span class="rdd-roll-{{rolled.code}} strong-text">{{rolled.quality}}</span> <span>{{rolled.roll}} : </span><span class="rdd-roll-{{rolled.code}} strong-text">{{rolled.quality}}</span>

View File

@@ -1,5 +1,5 @@
<img class="chat-icon" src="{{sortReserve.img}}" data-tooltip="{{sortReserve.name}}"/> <h4><img class="chat-icon" src="{{sortReserve.img}}" data-tooltip="{{sortReserve.name}}"/>
<h4>Déclenchement de sort: {{sortReserve.name}}</h4> 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}} <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}}). en réserve en {{sortReserve.system.coord}} ({{caseTmr-label sortReserve.system.coord}}).
<br>Ce sort a {{sortReserve.system.ptreve}} points de Rêve <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}} {{timestamp-imgSigneHeure sortReserve.system.heurecible}} {{sortReserve.system.heurecible}}
{{else}}indéterminée{{/if}} {{else}}indéterminée{{/if}}
{{#if sort}} {{#if sort}}
<div class="poesie-extrait poesie-overflow"> <p class="poesie-extrait poesie-overflow">
{{{sort.system.description}}} {{{sort.system.description}}}
</div> </p>
{{/if}} {{/if}}

View File

@@ -1,9 +1,8 @@
<img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" /> <h4><img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" />
<h4>
La {{item.type}} enchantée {{item.name}} de {{alias}} a perdu un Point de Rêve (nouveau total : {{nouveaupr}}).</h4> La {{item.type}} enchantée {{item.name}} de {{alias}} a perdu un Point de Rêve (nouveau total : {{nouveaupr}}).</h4>
<hr> <hr>
<div> <p>
{{#if (and (eq item.type 'potion') (eq nouveaupr 0))}} {{#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. Sa {{item.type}} étant désormais à 0 Point de Rêve, elle est inutilisable et peut être jetée.
{{/if}} {{/if}}
</div> </p>

View File

@@ -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}}"> <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}} {{alias}} rencontre {{#if (eq rencontre.system.genre 'f')}}une{{else}}un{{/if}} {{rencontre.name}} de force {{rencontre.system.force}}
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}

View File

@@ -3,8 +3,8 @@
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div>{{#if rolled.isSuccess}} <p>{{#if rolled.isSuccess}}
{{alias}} s'est accordé à {{entite}} {{alias}} s'est accordé à {{entite}}
{{else}}ne s'est pas accordé à {{entite}}, il pourra réessayer à sa prochaine attaque. {{else}}ne s'est pas accordé à {{entite}}, il pourra réessayer à sa prochaine attaque.
{{/if}} {{/if}}
</div> </p>

View File

@@ -1,14 +1,13 @@
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/competence_alchimie.webp" data-tooltip="préparation alchimique" /> <h4><img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/competence_alchimie.webp" data-tooltip="préparation alchimique" />
<h4>
{{alias}} essaye de réaliser sa recette Alchimique : {{recette.name}} {{alias}} essaye de réaliser sa recette Alchimique : {{recette.name}}
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
{{alias}} a réussi son opération alchimique ! Il/Elle peut passer à l'étape suivante de sa recette. {{alias}} a réussi son opération alchimique ! Il/Elle peut passer à l'étape suivante de sa recette.
{{else}} {{else}}
{{alias}} a raté son opération alchimique ! Sa recette est un echec. {{alias}} a raté son opération alchimique ! Sa recette est un echec.
{{/if}} {{/if}}
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
</div> </p>

View File

@@ -4,5 +4,5 @@
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
{{~#if rolled.isSuccess}} {{~#if rolled.isSuccess}}
<hr> <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}} {{/if}}

View File

@@ -1,10 +1,10 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
<h4>{{alias}} attaque à {{diffLibre}}: {{arme.name}}</h4> {{alias}} attaque à {{diffLibre}}: {{arme.name}}</h4>
<div>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</div> <p>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</p>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
{{#if tactique}} {{#if tactique}}
<div> <p>
{{#if (eq tactique 'charge')}} {{#if (eq tactique 'charge')}}
<img class="chat-icon" src="icons/svg/thrust.svg" data-tooltip="charge" height="32" width="32" /> <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! C'est une charge, vos parades auront un -4 et vous ne pourrez pas esquiver!
@@ -14,9 +14,9 @@
Votre feinte peut faire mouche! Votre feinte peut faire mouche!
{{/if}} {{/if}}
{{/if}} {{/if}}
</div> </p>
{{/if}} {{/if}}
<div> <p>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
<span><strong>{{show.cible}}</strong> doit se défendre à <strong>{{diffLibre}}</strong>, ou encaisser à <span><strong>{{show.cible}}</strong> doit se défendre à <strong>{{diffLibre}}</strong>, ou encaisser à
{{~#if (eq dmg.mortalite 'non-mortel')}} {{~#if (eq dmg.mortalite 'non-mortel')}}
@@ -37,4 +37,4 @@
<span>Votre attaque a échoué!</span> <span>Votre attaque a échoué!</span>
{{/if}} {{/if}}
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
</div> </p>

View File

@@ -1,15 +1,14 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
<h4>
{{alias}} {{#if rolled.isSuccess}}chante{{else}}tente de chanter{{/if}} {{oeuvre.name}} (niveau {{oeuvre.system.niveau}}) {{alias}} {{#if rolled.isSuccess}}chante{{else}}tente de chanter{{/if}} {{oeuvre.name}} (niveau {{oeuvre.system.niveau}})
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
{{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} . {{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} .
{{else}} {{else}}
{{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}. {{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}.
{{/if}} {{/if}}
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}} {{> "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}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-description.hbs" oeuvre.system}}

View File

@@ -1,5 +1,4 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
<h4>
{{alias}} {{show.title}}: {{alias}} {{show.title}}:
{{#if selectedCarac}}{{selectedCarac.label}} {{#if selectedCarac}}{{selectedCarac.label}}
{{#if competence}} {{#if competence}}
@@ -9,12 +8,12 @@
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <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> <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"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
{{~#if show.explications}} {{~#if show.explications}}
<div> <p>
{{show.explications}} {{show.explications}}
</div> </p>
{{/if}} {{/if}}

View File

@@ -1,15 +1,14 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
<h4>
{{alias}} {{#if rolled.isSuccess}}danse{{else}}tente de danser{{/if}} {{oeuvre.name}} (niveau {{oeuvre.system.niveau}}) {{alias}} {{#if rolled.isSuccess}}danse{{else}}tente de danser{{/if}} {{oeuvre.name}} (niveau {{oeuvre.system.niveau}})
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
{{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} . {{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} .
{{else}} {{else}}
{{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}. {{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}.
{{/if}} {{/if}}
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}} {{> "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}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-description.hbs" oeuvre.system}}

View File

@@ -1,9 +1,9 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
<h4>{{alias}} esquive une attaque à {{diffLibre}}</h4> {{alias}} esquive une attaque à {{diffLibre}}</h4>
<div>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</div> <p>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</p>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
<span>Attaque esquivée!</span> <span>Attaque esquivée!</span>
{{#if rolled.isPart}} {{#if rolled.isPart}}
@@ -14,10 +14,10 @@
<span>L'esquive de {{alias}} a échoué!</span> <span>L'esquive de {{alias}} a échoué!</span>
{{/if}} {{/if}}
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
</div> </p>
{{#if attackerRoll.tactique}} {{#if attackerRoll.tactique}}
<div> <p>
{{#if (eq attackerRoll.tactique 'charge')}} {{#if (eq attackerRoll.tactique 'charge')}}
<img class="chat-icon" src="icons/svg/thrust.svg" data-tooltip="charge" height="32" width="32" /> <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! 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" /> <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! C'était une feinte!
{{/if}} {{/if}}
</div> </p>
{{/if}} {{/if}}

View File

@@ -1,5 +1,4 @@
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/objets/chope_gres.webp" data-tooltip="Ethylisme" /> <h4><img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/objets/chope_gres.webp" data-tooltip="Ethylisme" />
<h4>
{{alias}} boit un verre d'alcool de force {{jetVie.forceAlcool}} {{alias}} boit un verre d'alcool de force {{jetVie.forceAlcool}}
{{#if alcool}} {{#if alcool}}
<br>{{alcool.name}} <br>{{alcool.name}}

View File

@@ -1,7 +1,5 @@
{{#if competence.img}}
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
{{/if}}
<h4> <h4>
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
{{alias}} {{#if show.title}}{{show.title}}: {{/if}} {{alias}} {{#if show.title}}{{show.title}}: {{/if}}
{{#if selectedCarac}}{{selectedCarac.label}} {{#if selectedCarac}}{{selectedCarac.label}}
{{#if competence}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}{{/if}} {{#if competence}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}{{/if}}

View File

@@ -1,15 +1,14 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
<h4>
{{alias}} joue à : {{oeuvre.name}} {{alias}} joue à : {{oeuvre.name}}
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
{{alias}} a gagné la partie ! {{alias}} a gagné la partie !
{{else}} {{else}}
{{alias}} a perdu ... {{alias}} a perdu ...
{{/if}} {{/if}}
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}} {{> "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}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-description.hbs" oeuvre.system}}

View File

@@ -1,11 +1,11 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
<h4>{{alias}} lit le signe {{signe.name}}</h4> {{alias}} lit le signe {{signe.name}}</h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
{{alias}} a gagné {{xpSort}} points d'expérience en sorts en {{competence.name}}. {{alias}} a gagné {{xpSort}} points d'expérience en sorts en {{competence.name}}.
{{else}} {{else}}
{{alias}} n'a pas pu interpréter le signe draconique. {{alias}} n'a pas pu interpréter le signe draconique.
{{/if}} {{/if}}
</div> </p>

View File

@@ -1,5 +1,5 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}"/>
<h4 data-categorie="tmr" data-actor-id="{{actor._id}}"> <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}} {{alias}} tente de {{maitrise.verbe}} {{grammar-le tmr.genre}}
{{#if isTMRCache}} {{#if isTMRCache}}
{{caseTmr-type tmr.coord}} {{caseTmr-type tmr.coord}}

View File

@@ -1,10 +1,9 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
<h4>
{{alias}} a médité : {{meditation.name}} {{alias}} a médité : {{meditation.name}}
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{#if rolled.isSuccess}} {{#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>. {{alias}} aperçoit un signe draconique éphémère, qu'il faut aller lire en <strong>{{typeTmr-name meditation.system.tmr}}</strong>.
{{else}} {{else}}
@@ -12,4 +11,4 @@
{{/if}} {{/if}}
<br><span>{{alias}} s'est fatigué de 2 cases.</span> <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~}} {{#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>

View File

@@ -1,9 +1,9 @@
<img class="chat-icon" src="icons/svg/lightning.svg" data-tooltip="Météo" /> <h4><img class="chat-icon" src="icons/svg/lightning.svg" data-tooltip="Météo" />
<h4>Météo aléatoire</h4> Météo aléatoire</h4>
<ul> <ul>
<li>Vent: {{lowerFirst vent.description}} {{grammar-apostrophe 'de' vent.direction}}, force {{vent.force}}</li> <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>Mer {{lowerFirst mer.description}}, {{grammar-apostrophe 'de' mer.direction}}, force {{mer.force}}</li>
<li>Température {{lowerFirst temperature.description}} ({{plusMoins temperature.force}})</li> <li>Température {{lowerFirst temperature.description}} ({{plusMoins temperature.force}})</li>
<li>Couverture nuageuse: {{lowerFirst nuage.description}}</li> <li>Couverture nuageuse: {{lowerFirst nuage.description}}</li>
<li>Pluie: {{lowerFirst pluie.description}}</li> <li>Pluie: {{lowerFirst pluie.description}}</li>
</div> </ul>

View File

@@ -1,15 +1,14 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
<h4>
{{alias}} {{#if rolled.isSuccess}}interprete{{else}}tente de jouer{{/if}} le morceau : {{oeuvre.name}} (niveau {{oeuvre.system.niveau}}) {{alias}} {{#if rolled.isSuccess}}interprete{{else}}tente de jouer{{/if}} le morceau : {{oeuvre.name}} (niveau {{oeuvre.system.niveau}})
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
{{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} . {{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} .
{{else}} {{else}}
{{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}. {{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}.
{{/if}} {{/if}}
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}} {{> "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}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-description.hbs" oeuvre.system}}

View File

@@ -1,16 +1,15 @@
<h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
{{alias}} tente d'interpréter {{oeuvre.name}} (niveau {{oeuvre.system.niveau}}) {{alias}} tente d'interpréter {{oeuvre.name}} (niveau {{oeuvre.system.niveau}})
</h4> </h4>
<br>{{upperFirst oeuvre.system.default_carac}} / {{oeuvre.system.competence}} <br>{{upperFirst oeuvre.system.default_carac}} / {{oeuvre.system.competence}}
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
{{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} . {{alias}} réussit son interprétation avec une qualité de {{qualiteFinale}} .
{{else}} {{else}}
{{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}. {{alias}} manque d'inspiration, son interprétation a une qualité de {{qualiteFinale}}.
{{/if}} {{/if}}
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}} {{> "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}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-description.hbs" oeuvre.system}}

View File

@@ -1,9 +1,9 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
<h4>{{alias}} pare une attaque à {{diffLibre}} - {{arme.name}}</h4> {{alias}} pare une attaque à {{diffLibre}} - {{arme.name}}</h4>
<div>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</div> <p>{{selectedCarac.label}}{{#unless (eq selectedCarac.label competence.name)}} / {{competence.name}}{{/unless}}</p>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
<span> <span>
{{#if rolled.isSuccess}} {{#if rolled.isSuccess}}
Attaque parée! Attaque parée!
@@ -13,27 +13,27 @@
{{/if}} {{/if}}
</span> </span>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}} {{> "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> {{#if (eq show.recul 'encaisse')}}<p>{{alias}} ne recule pas malgré la violence du coup.</p>
{{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 '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')}}<div>La violence du coup fait reculer {{alias}} de quelques mètres ! Il/elle ne pourra plus attaquer ce round.</div> {{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}}
{{#if (eq show.deteriorationArme 'resiste')}} {{#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')}} {{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')}} {{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}}
{{#if show.desarme}} {{#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}}
{{#if attackerRoll.tactique}} {{#if attackerRoll.tactique}}
<div> <p>
{{#if (eq attackerRoll.tactique 'charge')}} {{#if (eq attackerRoll.tactique 'charge')}}
<img class="chat-icon" src="icons/svg/thrust.svg" data-tooltip="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! C'était une charge, les parades de l'adversaire auront un -4 et il ne pourra pas esquiver!
@@ -42,5 +42,5 @@
width="32" /> width="32" />
C'était une feinte! C'était une feinte!
{{/if}} {{/if}}
</div> </p>
{{/if}} {{/if}}

View File

@@ -1,5 +1,4 @@
<img class="chat-icon" src="{{competence.img}}" /> <h4><img class="chat-icon" src="{{competence.img}}" />
<h4>
{{#if (eq mode "attaque")}} {{#if (eq mode "attaque")}}
{{attacker.name}} tente de {{#if isECNIDefender}}conjurer la possession de{{else}}posséder{{/if}} {{defender.name}} {{attacker.name}} tente de {{#if isECNIDefender}}conjurer la possession de{{else}}posséder{{/if}} {{defender.name}}
{{else}} {{else}}
@@ -9,7 +8,7 @@
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
<span class='chat-card-button-area'> <span class='chat-card-button-area'>
<br> <br>
{{#if (eq mode "attaque")}} {{#if (eq mode "attaque")}}
@@ -44,4 +43,4 @@
{{#if possession.isConjurer}} {{#if possession.isConjurer}}
<br><strong>Vous avez conjuré {{possession.system.typepossession}} ! La possession en cours a été supprimée.</strong> <br><strong>Vous avez conjuré {{possession.system.typepossession}} ! La possession en cours a été supprimée.</strong>
{{/if}} {{/if}}
</div> </p>

View File

@@ -1,5 +1,4 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{oeuvre.system.competence}}" />
<h4>
{{alias}} {{#if rolled.isSuccess}}réalise{{else}}tente de cuisiner{{/if}} la recette : {{oeuvre.name}} (niveau {{oeuvre.system.niveau}}) {{alias}} {{#if rolled.isSuccess}}réalise{{else}}tente de cuisiner{{/if}} la recette : {{oeuvre.name}} (niveau {{oeuvre.system.niveau}})
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}

View File

@@ -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}}"> <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! {{alias}} tente de maîtriser un Rêve de Dragon!
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}

View File

@@ -1,17 +1,16 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
<h4>
{{alias}} {{#if isSortReserve}}met en réserve{{else}}lance{{/if}} {{alias}} {{#if isSortReserve}}met en réserve{{else}}lance{{/if}}
le {{#if selectedSort.system.isrituel}}rituel{{else}}sort{{/if}} le {{#if selectedSort.system.isrituel}}rituel{{else}}sort{{/if}}
{{selectedSort.name}} {{selectedSort.name}}
</h4> </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}} {{#if show.reveInsuffisant}}
<span>Pas assez de rêve!</span> <span>Pas assez de rêve!</span>
{{/if}} {{/if}}
</div> </p>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
<span> <span>
{{#if rolled.isETotal}}Echec TOTAL {{#if rolled.isETotal}}Echec TOTAL
{{else if rolled.isEchec}}Echec {{else if rolled.isEchec}}Echec
@@ -22,8 +21,8 @@
{{else}}{{depenseReve}} points de rêve ont été dépensés {{else}}{{depenseReve}} points de rêve ont été dépensés
{{~/if}}. {{~/if}}.
</span> </span>
</div> </p>
<hr> <hr>
<div class="poesie-extrait poesie-overflow"> <p class="poesie-extrait poesie-overflow">
{{{selectedSort.system.description}}} {{{selectedSort.system.description}}}
</div> </p>

View File

@@ -1,11 +1,10 @@
<img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" /> <h4><img class="chat-icon" src="{{competence.img}}" data-tooltip="{{competence.name}}" />
<h4>
{{alias}} travaille à sa t&acirc;che {{tache.name}} {{alias}} travaille à sa t&acirc;che {{tache.name}}
<br>{{selectedCarac.label}}/{{competence.name}} <br>{{selectedCarac.label}}/{{competence.name}}
</h4> </h4>
{{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.hbs"}}
<hr> <hr>
<div> <p>
{{alias}} a obtenu {{rolled.ptTache}} point{{~#unless (eq rolled.ptTache 1)}}s{{/unless}} de tâche, {{alias}} a obtenu {{rolled.ptTache}} point{{~#unless (eq rolled.ptTache 1)}}s{{/unless}} de tâche,
son avancement est de 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}} <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 (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~}} {{#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"}} {{> "systems/foundryvtt-reve-de-dragon/templates/chat-info-appel-au-moral.hbs"}}
</div> </p>

View File

@@ -1,10 +1,10 @@
{{log 'chat-vente-item' this}}
<div class="post-item" data-transfer="{{transfer}}"> <div class="post-item" data-transfer="{{transfer}}">
<h3>{{#if alias}}{{alias}} propose: {{else}}Acheter {{/if}}{{item.name}}</h3> <h4>
{{#if item.img}} {{#if item.img}}
<img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" /> <img class="chat-icon" src="{{item.img}}" data-tooltip="{{item.name}}" />
{{/if}} {{/if}}
<div class="poesie-extrait poesie-overflow card-content">{{{item.system.description}}}</div> {{#if alias}}{{alias}} propose: {{else}}Acheter {{/if}}{{item.name}}</h4>
<p class="poesie-extrait poesie-overflow card-content">{{{item.system.description}}}</p>
<p> <p>
{{#each properties as |property p|}} {{#each properties as |property p|}}
<span>{{{property}}}</span><br> <span>{{{property}}}</span><br>

View File

@@ -24,20 +24,18 @@
<div class="flex-group-center flex-shrink"> <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> <h4>Le gardien gére les TMR du joueur, le joueur ne peut pas monter dans les TMR!</h4>
</div> </div>
<hr>
{{/if}} {{/if}}
<div class="flex-group-center flex-shrink"> <label class="flex-group-center" >Coordonnées : <span id="tmr-pos">0</span> </label>
<img class="small-button-direction tmr-move" data-move="topleft" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-topleft.svg"> <div class="grid-move-tmr">
<img class="small-button-direction tmr-move" data-move="top" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-top.svg"> <img class="move-tmr-topleft 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="topright" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-topright.svg"> <img class="move-tmr-top tmr-move" data-move="top" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-top.svg">
</div> <img class="move-tmr-topright tmr-move" data-move="topright" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-topright.svg">
<div class="flex-group-center flex-shrink"> <img class="move-tmr-bottomleft tmr-move" data-move="bottomleft" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-bottomleft.svg">
<label>Coordonnées : </label><span id="tmr-pos">0</span> <img class="move-tmr-bottom tmr-move" data-move="bottom" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-bottom.svg">
</div> <img class="move-tmr-bottomright tmr-move" data-move="bottomright" src="systems/foundryvtt-reve-de-dragon/assets/ui/dir-bottomright.svg">
<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">
</div> </div>
<hr>
<div class="flex-group-center flex-shrink lire-signe-draconique"> <div class="flex-group-center flex-shrink lire-signe-draconique">
<a>Lire un signe draconique</a> <a>Lire un signe draconique</a>
</div> </div>

View File

@@ -1,14 +0,0 @@
<form class="{{cssClass}}" autocomplete="off">
{{>"systems/foundryvtt-reve-de-dragon/templates/header-item.hbs"}}
<nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="informations">Informations</a>
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-tab-environnement.hbs"}}
</nav>
<section class="sheet-body">
<div class="tab items flexcol" data-group="primary" data-tab="informations">
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-item-description.hbs"}}
</div>
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-environnement.hbs"}}
</section>
</form>

View File

@@ -1,14 +0,0 @@
<form class="{{cssClass}}" autocomplete="off">
{{>"systems/foundryvtt-reve-de-dragon/templates/header-item.hbs"}}
<nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="informations">Informations</a>
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-tab-environnement.hbs"}}
</nav>
<section class="sheet-body">
<div class="tab items flexcol" data-group="primary" data-tab="informations">
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-item-description.hbs"}}
</div>
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-environnement.hbs"}}
</section>
</form>

View File

@@ -1,14 +0,0 @@
<form class="{{cssClass}}" autocomplete="off">
{{>"systems/foundryvtt-reve-de-dragon/templates/header-item.hbs"}}
<nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="informations">Informations</a>
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-tab-environnement.hbs"}}
</nav>
<section class="sheet-body">
<div class="tab items flexcol" data-group="primary" data-tab="informations">
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-inventaire.hbs"}}
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-item-description.hbs"}}
</div>
{{>"systems/foundryvtt-reve-de-dragon/templates/item/partial-environnement.hbs"}}
</section>
</form>

View File

@@ -1,27 +0,0 @@
<form class="rdd-item-sheet-tarot" autocomplete="off">
<header class="sheet-header">
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
</div>
</header>
<section class="sheet-body">
<div class="flexrow">
<img class="profile-img" src="{{img}}" data-edit="img" data-tooltip="{{name}}"/>
<div class="flexcol">
<div class="form-group">
<label for="system.concept">Aspect</label>
<input class="attribute-value" type="text" name="system.concept" value="{{system.concept}}" data-dtype="String" />
</div>
<div class="form-group">
<label for="system.aspect">Sens</label>
<select name="system.aspect" data-dtype="String">
{{#select system.aspect}}
{{>"systems/foundryvtt-reve-de-dragon/templates/enum-aspect-tarot.hbs"}}
{{/select}}
</select>
</div>
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-item-frequence.hbs"}}
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-item-description.hbs"}}
</div>
</section>
</form>

View File

@@ -1,6 +1,8 @@
<header class="sheet-header"> <header class="sheet-header">
<div class="sheet-header-row">
<img class="profile-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}"/> <img class="profile-img" src="{{item.img}}" data-edit="img" data-action="editImage" data-tooltip="{{item.name}}"/>
<div class="header-fields"> <div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{item.name}}" placeholder="Name"/></h1> <h1 class="charname"><input name="name" type="text" value="{{item.name}}" placeholder="Name"/></h1>
</div> </div>
</div>
</header> </header>

View File

@@ -0,0 +1,22 @@
<section>
{{> "systems/foundryvtt-reve-de-dragon/templates/sheets/item/common/header.hbs"}}
<fieldset>
<div class="form-group">
<label for="system.concept">Concept</label>
<input type="text" name="system.concept" value="{{system.concept}}" />
</div>
<div class="form-group">
<label for="system.aspect">Aspect</label>
<input type="text" name="system.aspect" value="{{system.aspect}}" />
</div>
<div class="form-group">
<label for="system.frequence">Fréquence</label>
<input type="number" name="system.frequence" value="{{system.frequence}}" data-dtype="Number" />
</div>
</fieldset>
{{>"systems/foundryvtt-reve-de-dragon/templates/sheets/item/common/template-description.hbs"}}
</section>

View File

@@ -36,9 +36,10 @@
</tr> </tr>
{{#each gmAstrologie.ajustementsActors as |ajustementActeur|}} {{#each gmAstrologie.ajustementsActors as |ajustementActeur|}}
<tr class="heure-naissance" data-heure-naissance="{{actor.system.heure}}"> <tr class="heure-naissance" data-heure-naissance="{{actor.system.heure}}">
<td> <td class="info-acteur">
<img class="img-signe-heure" src="{{actor.img}}" data-tooltip="{{actor.name}}" /> <img class="img-signe-heure" src="{{actor.img}}" data-tooltip="{{actor.name}}" />
{{actor.name}} {{timestamp-imgSigneHeure actor.system.heure}} <span>{{actor.name}}</span>
{{timestamp-imgSigneHeure actor.system.heure}}
</td> </td>
{{#each ajustementActeur.ajustements as |ajustement|}} {{#each ajustementActeur.ajustements as |ajustement|}}
<td>{{#if (ne ajustement.ajustement 0)}} <td>{{#if (ne ajustement.ajustement 0)}}

Some files were not shown because too many files have changed in this diff Show More