Compare commits

..

25 Commits

Author SHA1 Message Date
12faf34631 Fix roll with armor 0
Some checks failed
Release Creation / build (release) Failing after 48s
2026-01-19 20:19:36 +01:00
afa6e7a323 Fix roll with armor 0 2026-01-19 20:19:09 +01:00
89f5674fb9 Fix roll with armor 0 2026-01-19 20:18:54 +01:00
cd06d2e5ec Fix roll with armor 0 2026-01-19 20:18:16 +01:00
cdddcb6aee Fix roll with armor 0 2026-01-19 20:14:24 +01:00
2abd2c881a Sync bol compendiums 2026-01-12 23:01:53 +01:00
3fa5ca66d1 Minor fix for chronicles v1 2025-12-04 18:26:26 +01:00
6de15eeda7 Ajout alignement Mythic+
Some checks failed
Release Creation / build (release) Failing after 43s
2025-09-28 20:52:09 +02:00
724c096743 Ajout alignement Mythic+
Some checks failed
Release Creation / build (release) Failing after 39s
2025-09-28 20:47:31 +02:00
3e3a4b9ec1 Ajout alignement Mythic+
Some checks failed
Release Creation / build (release) Failing after 41s
2025-09-28 20:42:01 +02:00
425a2a1fc0 Fix odd difficulties
Some checks failed
Release Creation / build (release) Failing after 45s
2025-08-24 22:18:39 +02:00
203d7add66 FIx journals color
Some checks failed
Release Creation / build (release) Failing after 1m38s
2025-07-08 22:34:13 +02:00
8ae193dc34 Fix items sheets
Some checks failed
Release Creation / build (release) Failing after 1m0s
2025-05-15 18:18:40 +02:00
3904f595b5 Add repo
Some checks failed
Release Creation / build (release) Failing after 1m1s
2025-05-15 15:29:49 +02:00
1bf21fae7f Add repo 2025-05-15 14:29:11 +02:00
22579c21bc Update for Foundry v13
Some checks failed
Release Creation / build (release) Failing after 58s
2025-05-09 21:58:37 +02:00
50c5c31e7b Update for Foundry v13 2025-05-09 21:56:03 +02:00
a8c05cd4de Update for Foundry v13 2025-05-09 21:54:29 +02:00
e1cea78059 Update for Foundry v13 2025-05-09 21:54:10 +02:00
c2f9934f5f Fix welcome message 2025-03-31 07:21:30 +02:00
313c8a85fa Fix welcome message 2025-03-31 07:15:38 +02:00
74f6d4d54a Fix empty lands, Fix #33 2025-02-12 07:02:24 +01:00
2eb153ce14 Various fixes for translations 2025-02-11 21:55:04 +01:00
fe513e821a Fix AIS from ARESIA inputs 2025-02-11 21:45:30 +01:00
1b72c9c467 Various fixes for rulebook module 2025-02-10 20:28:13 +01:00
191 changed files with 1123 additions and 678 deletions

View File

@@ -13,7 +13,7 @@ jobs:
#- uses: actions/checkout@v3 #- uses: actions/checkout@v3
- uses: RouxAntoine/checkout@v3.5.4 - uses: RouxAntoine/checkout@v3.5.4
with: with:
ref: 'v10' ref: "v13"
# get part of the tag after the `v` # get part of the tag after the `v`
- name: Extract tag version number - name: Extract tag version number
@@ -25,7 +25,7 @@ jobs:
id: sub_manifest_link_version id: sub_manifest_link_version
uses: microsoft/variable-substitution@v1 uses: microsoft/variable-substitution@v1
with: with:
files: 'system.json' files: "system.json"
env: env:
version: ${{steps.get_version.outputs.version-without-v}} version: ${{steps.get_version.outputs.version-without-v}}
url: https://www.uberwald.me/gitea/public/bol url: https://www.uberwald.me/gitea/public/bol
@@ -37,12 +37,12 @@ jobs:
apt update -y apt update -y
apt install -y zip apt install -y zip
- run: zip -r ./bol.zip system.json template.json README.md LICENSE assets/ css/ fonts/ images/ lang/ module/ packs/ styles/ templates/ ui/ - run: zip -r ./bol.zip system.json template.json README.md LICENSE assets/ compendiums/ css/ fonts/ images/ lang/ module/ packs/ styles/ templates/ ui/
- name: setup go - name: setup go
uses: https://github.com/actions/setup-go@v4 uses: https://github.com/actions/setup-go@v4
with: with:
go-version: '>=1.20.1' go-version: ">=1.20.1"
- name: Use Go Action - name: Use Go Action
id: use-go-action id: use-go-action
@@ -51,4 +51,4 @@ jobs:
files: |- files: |-
./bol.zip ./bol.zip
system.json system.json
api_key: '${{secrets.RELEASE_TOKEN_UBERWALD}}' api_key: "${{secrets.RELEASE_TOKEN_BOL}}"

View File

@@ -1,18 +1,26 @@
Changes :
# v12.1.0 # v13.0.0
- Foundry v13 only
# v12.1.7
- Enhance welcome message
# v12.1.1
## French ## French
- Correction sur les conditions des sorts - Correction sur les conditions des sorts
- Jet d'armures correctement affichés - Jet d'armures correctement affichés
- Dégat à 0 possibles sur les armes/capacités - Dégat à 0 possibles sur les armes/capacités
## English ## English
- Corrected spell conditions - Corrected spell conditions
- Armor rolls are now correctly displayed - Armor rolls are now correctly displayed
- Weapon/capacity damage can now be set to 0 - Weapon/capacity damage can now be set to 0
# v12.1.0 # v12.1.0
- Gestion des Hordes - Gestion des Hordes
@@ -55,4 +63,3 @@ Changes :
- Lorsqu'une arme relance les 1 sur ses dégats, l'information est affichée dans le tchat - Lorsqu'une arme relance les 1 sur ses dégats, l'information est affichée dans le tchat
- Termes corrects pour les PNJs (ie rival) - Termes corrects pour les PNJs (ie rival)
- Nouveaux équipements issus du Dieu Voilé - Nouveaux équipements issus du Dieu Voilé

View File

@@ -18,7 +18,7 @@
"description": "<h1>Medium Armour</h1><p>Combining some of the mobility of the lighter armour and better protection of heavy armour, this is the armour worn by the typical adventurer expecting to get into combat situations on a regular basis. Medium armour could represent fairly extensive coverage of leather armour, with stiffened leather in some of the more vital areas, or partial coverage of mail with leather in other areas. It could even represent a steel breastplate and minimal/no other armour.</p><p>Someone in medium armour can often remove portions of their armour to reduce it to light armour, as necessary.</p><h2>Medium armour effects</h2><ul><li>Roll a d6-2 (0-4 points of damage reduction).</li><li>If you prefer static numbers, medium armour absorbs 2 points of damage.</li><li>Wearing medium armour restricts magicians and imposes an extra 2 Arcane Points cost on a spell casting.</li></ul>" "description": "<h1>Medium Armour</h1><p>Combining some of the mobility of the lighter armour and better protection of heavy armour, this is the armour worn by the typical adventurer expecting to get into combat situations on a regular basis. Medium armour could represent fairly extensive coverage of leather armour, with stiffened leather in some of the more vital areas, or partial coverage of mail with leather in other areas. It could even represent a steel breastplate and minimal/no other armour.</p><p>Someone in medium armour can often remove portions of their armour to reduce it to light armour, as necessary.</p><h2>Medium armour effects</h2><ul><li>Roll a d6-2 (0-4 points of damage reduction).</li><li>If you prefer static numbers, medium armour absorbs 2 points of damage.</li><li>Wearing medium armour restricts magicians and imposes an extra 2 Arcane Points cost on a spell casting.</li></ul>"
}, },
"Casque": { "Casque": {
"name": "Casque", "name": "Helmet",
"description": "<h1>Helmet</h1><p>If you are wearing a helmet, this adds +1 to your protection if already wearing armour. Therefore, if in light armour and helmet, youd roll d6-2. In medium armour, roll d6-1. In heavy armour, roll d6.</p><p>Helmets give you a penalty in social situations and to your initiative (as its harder to notice things whilst wearing a helmet).</p><p>Most Heroes take their helmets off, unless preparing for battle.</p>" "description": "<h1>Helmet</h1><p>If you are wearing a helmet, this adds +1 to your protection if already wearing armour. Therefore, if in light armour and helmet, youd roll d6-2. In medium armour, roll d6-1. In heavy armour, roll d6.</p><p>Helmets give you a penalty in social situations and to your initiative (as its harder to notice things whilst wearing a helmet).</p><p>Most Heroes take their helmets off, unless preparing for battle.</p>"
}, },
"Grand bouclier": { "Grand bouclier": {

View File

@@ -74,8 +74,8 @@
"description": "<h1>Shamballah</h1><p>Shamballahns are generally a dark-skinned and dark-haired people with purple, mauve, scarlet, and indigo eye colouring. They are very perceptive and make good hunters.</p>" "description": "<h1>Shamballah</h1><p>Shamballahns are generally a dark-skinned and dark-haired people with purple, mauve, scarlet, and indigo eye colouring. They are very perceptive and make good hunters.</p>"
}, },
"Terres Désolées": { "Terres Désolées": {
"name": "Terres Désolées", "name": "Empty Lands",
"description": "<h1>Terres Désolées</h1><p>Personne ne sait grand-chose au sujet des Terres Désolées, et moins encore sur les contrées qui sétendraient au-delà. Des gens vivent assurément dans cette région, sil faut en croire les récits de chasseurs et dexplorateurs qui ont relevé des traces de présence. Mais à ce jour, personne na découvert le moindre village ou hameau, et on ignore tout de lapparence de leurs habitants.</p><p>Si votre héros est originaire des Terres Désolées, il vous faudra travailler avec le MJ pour déterminer à quoi ressemble votre personnage. Mais attendezvous à ce quil soit toujours considéré comme un étranger, où quil se rende en Lémurie.</p>" "description": "<h1>Empty Lands</h1><p>No one knows what exists in and beyond the Empty Lands. People do live there, because hunters and explorers have seen evidence of them. However, no towns or even villages have been discovered, and no one has any idea of what the people are like. If you come from the Empty Lands, you will need to work with the GM to determine what your character is like. He or she will always be treated as an outsider.</p>"
}, },
"Tyrus": { "Tyrus": {
"name": "Tyrus", "name": "Tyrus",

View File

@@ -42,8 +42,8 @@
"description": "<h1>Staff Sling</h1><p>The staff sling is a two-handed version of the sling, with a longer range.</p>" "description": "<h1>Staff Sling</h1><p>The staff sling is a two-handed version of the sling, with a longer range.</p>"
}, },
"Cimeterre": { "Cimeterre": {
"name": "Cimeterre", "name": "Scimitar",
"description": "<h1>Épée</h1><p>larme favorite des héros. Elle se décline en différents modèles utilisés un peu partout en Lémurie, comme les sabres dabordage, les tulwars, les cimeterres ou les épées longues. Inscrivez le nom de larme que vous voulez sur la fiche de votre personnage en fonction de limage que vous vous faites de ce dernier. Mais au final, une épée reste une longue lame utilisée pour tuer lennemi.</p>" "description": "<h1>Scimitar (Sword)</h1><p>This weapon is a favourite amongst Heroes. This is the catch-all description for all manner of long-bladed, one-handed weapons used all over Lemuria, such as cutlasses, tulwars, scimitars, rapiers, broadswords and longswords. Call it what you want on your character sheet, because that will add flavour to your character, but at the end of the day a sword is a long blade used for killing.</p>"
}, },
"Dague": { "Dague": {
"name": "Dagger", "name": "Dagger",
@@ -123,19 +123,19 @@
}, },
"Masse darmes": { "Masse darmes": {
"name": "Mace", "name": "Mace",
"description": "<h1>Mace</h1><p>cA mace is similar to a club, but with a metal head, often with spikes or flanges. One-handed maces can be thrown at increments of 5 as they arent very effective used this way.</p>" "description": "<h1>Mace</h1><p>A mace is similar to a club, but with a metal head, often with spikes or flanges. One-handed maces can be thrown at increments of 5 as they arent very effective used this way.</p>"
}, },
"Masse darmes (Lancer)": { "Masse darmes (Lancer)": {
"name": "Masse darmes (Lancer)", "name": "Mace (Thrown)",
"description": "<h1>Masse darmes</h1><p>cette arme a la même forme quun gourdin, mais possède une tête en métal, souvent agrémentée de pointes ou dailettes pour plus defficacité. Les masses darmes à une main peuvent se lancer, mais à courte distance, car elles ne sont pas vraiment prévues pour cet usage.</p>" "description": "<h1>Mace</h1><p>A mace is similar to a club, but with a metal head, often with spikes or flanges. One-handed maces can be thrown at increments of 5 as they arent very effective used this way.</p>"
}, },
"Massue": { "Massue": {
"name": "Massue", "name": "Club",
"description": "<h1>Massue</h1><p>la version lourde du gourdin. Une massue consiste en un solide manche en bois dont lextrémité, plus volumineuse, sert à fracasser le crâne de ses adversaires, doù son autre nom de casse-tête.</p>" "description": "<h1>Club</h1><p>This is a larger version of the cudgel. It is a stout length of wood, used in one hand to bludgeon and batter your opponent. Clubs usually have a wider or knobbed head and can be called war-clubs, knobkerries, or shillelaghs.</p>"
}, },
"Massue (Lancer)": { "Massue (Lancer)": {
"name": "Massue (Lancer)", "name": "Club (Thrown)",
"description": "<h1>Massue</h1><p>la version lourde du gourdin. Une massue consiste en un solide manche en bois dont lextrémité, plus volumineuse, sert à fracasser le crâne de ses adversaires, doù son autre nom de casse-tête.</p>" "description": "<h1>Club</h1><p>This is a larger version of the cudgel. It is a stout length of wood, used in one hand to bludgeon and batter your opponent. Clubs usually have a wider or knobbed head and can be called war-clubs, knobkerries, or shillelaghs.</p>"
}, },
"Morgenstern": { "Morgenstern": {
"name": "Morning Star", "name": "Morning Star",

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +0,0 @@
[Dolphin]
Timestamp=2024,11,2,20,30,2.2800000000000002
Version=4
ViewMode=1
VisibleRoles=Details_text,Details_size,Details_modificationtime,Details_creationtime,CustomizedDetails

View File

@@ -290,6 +290,7 @@
"BOL.itemProperty.difficulty": "Schwierigkeit", "BOL.itemProperty.difficulty": "Schwierigkeit",
"BOL.itemProperty.natural": "Natürliche Waffe", "BOL.itemProperty.natural": "Natürliche Waffe",
"BOL.itemProperty.onlymodifier": "Nur Modifikator (d.h. Angriffe von Kreaturen)", "BOL.itemProperty.onlymodifier": "Nur Modifikator (d.h. Angriffe von Kreaturen)",
"BOL.itemProperty.attackMalusDice": "Angriffsmalus (Würfel)",
"BOL.itemStat.quantity": "Anzahl", "BOL.itemStat.quantity": "Anzahl",
"BOL.itemStat.weight": "Gewicht", "BOL.itemStat.weight": "Gewicht",
@@ -468,6 +469,7 @@
"BOL.chat.welcome4": "Im Discord findet ihr Support für die FoundryVTT-Implementierung dieses Systems: https://discord.gg/pPSDNJk", "BOL.chat.welcome4": "Im Discord findet ihr Support für die FoundryVTT-Implementierung dieses Systems: https://discord.gg/pPSDNJk",
"BOL.chat.welcome5": "Auf ein gutes Spiel in Lemuria!", "BOL.chat.welcome5": "Auf ein gutes Spiel in Lemuria!",
"BOL.chat.welcome6": "", "BOL.chat.welcome6": "",
"BOL.chat.bolRulebookMessage": "Don't miss the full Rulebook module (including Sagas) available at : https://www.ludospherik-editions.com/en_gb/ !",
"BOL.settings.rollArmor": "Roll for armor", "BOL.settings.rollArmor": "Roll for armor",
"BOL.settings.rollArmorTooltip": "Roll for armor value, fixed value if unchecked", "BOL.settings.rollArmorTooltip": "Roll for armor value, fixed value if unchecked",

View File

@@ -365,6 +365,7 @@
"BOL.itemProperty.difficulty": "Difficulty", "BOL.itemProperty.difficulty": "Difficulty",
"BOL.itemProperty.natural": "Natural weapon", "BOL.itemProperty.natural": "Natural weapon",
"BOL.itemProperty.onlymodifier": "Modifier only (ie creatures attacks)", "BOL.itemProperty.onlymodifier": "Modifier only (ie creatures attacks)",
"BOL.itemProperty.attackMalusDice": "Attack Malus (Dice)",
"BOL.itemStat.quantity": "Quantity", "BOL.itemStat.quantity": "Quantity",
"BOL.itemStat.weight": "Weight", "BOL.itemStat.weight": "Weight",
@@ -543,17 +544,24 @@
"BOL.chat.criticalbuttonjournal": "Legendary/Heroic Success", "BOL.chat.criticalbuttonjournal": "Legendary/Heroic Success",
"BOL.chat.nodamage": "Do not apply damages", "BOL.chat.nodamage": "Do not apply damages",
"BOL.chat.armorRoll": "Armor roll", "BOL.chat.armorRoll": "Armor roll",
"BOL.chat.bolRulebookMessage": "Don't miss the full Rulebook module (including Sagas) available at : https://www.ludospherik-editions.com/en_gb/ !",
"BOL.dialog.soeasy": "So easy (+4)", "BOL.dialog.soeasy": "So easy (+4)",
"BOL.dialog.soeasy3": "So easy (+3)",
"BOL.dialog.veryeasy": "Very easy (+2)", "BOL.dialog.veryeasy": "Very easy (+2)",
"BOL.dialog.easy": "Easy (+1)", "BOL.dialog.easy": "Easy (+1)",
"BOL.dialog.moderate": "Moderate (0)", "BOL.dialog.moderate": "Moderate (0)",
"BOL.dialog.hard": "Hard (-1)", "BOL.dialog.hard": "Hard (-1)",
"BOL.dialog.tough": "Tough (-2)", "BOL.dialog.tough": "Tough (-2)",
"BOL.dialog.tough3": "Tough (-3)",
"BOL.dialog.demanding": "Demanding (-4)", "BOL.dialog.demanding": "Demanding (-4)",
"BOL.dialog.demanding5": "Demanding (-5)",
"BOL.dialog.formidable": "Formidable (-6)", "BOL.dialog.formidable": "Formidable (-6)",
"BOL.dialog.formidable7": "Formidable (-7)",
"BOL.dialog.heroic": "Heroic (-8)", "BOL.dialog.heroic": "Heroic (-8)",
"BOL.dialog.heroic9": "Heroic (-9)",
"BOL.dialog.mythic": "Mythic (-10)", "BOL.dialog.mythic": "Mythic (-10)",
"BOL.dialog.mythic11": "Mythic (-11)",
"BOL.dialog.divine": "Divine (-12)", "BOL.dialog.divine": "Divine (-12)",
"BOL.dialog.pointblank": "Point blank (+1)", "BOL.dialog.pointblank": "Point blank (+1)",
@@ -578,11 +586,11 @@
"BOL.ui.bionotes": "Notes", "BOL.ui.bionotes": "Notes",
"BOL.chat.welcome1": "Welcome to Barbarians of Lemuria (Ludospherik version)", "BOL.chat.welcome1": "Welcome to Barbarians of Lemuria (Ludospherik version)",
"BOL.chat.welcome2": "Books are necessary to play, and ca be found here : http://www.ludospherik.fr/content/14-barbarians-of-lemuria", "BOL.chat.welcome2": "Books are necessary to play, and <a href='http://www.ludospherik.fr/content/14-barbarians-of-lemuria'>can be found here.</a> ",
"BOL.chat.welcome3": "The integrated maps are authorized by Guillaume Tavernier and Ludospherik. Thanks to them !.", "BOL.chat.welcome3": "The integrated maps are authorized by Emmanuel Roudier and Ludospherik. Thanks to them !.",
"BOL.chat.welcome4": "All support for this system is available on this Discord server : https://discord.gg/pPSDNJk", "BOL.chat.welcome4": "All support for this system is available on this Discord server : https://discord.gg/pPSDNJk",
"BOL.chat.welcome5": "Good game in Lemuria !", "BOL.chat.welcome5": "<strong>In order to see compendiums in English, you must install and enable the Babele module.</strong>",
"BOL.chat.welcome6": "", "BOL.chat.welcome6": "Good game in Lemuria !",
"BOL.settings.rollArmor": "Roll for armor", "BOL.settings.rollArmor": "Roll for armor",
"BOL.settings.rollArmorTooltip": "Roll for armor value, fixed value if unchecked", "BOL.settings.rollArmorTooltip": "Roll for armor value, fixed value if unchecked",

View File

@@ -359,6 +359,7 @@
"BOL.itemProperty.difficulty": "Dificultad", "BOL.itemProperty.difficulty": "Dificultad",
"BOL.itemProperty.natural": "Arma natural", "BOL.itemProperty.natural": "Arma natural",
"BOL.itemProperty.onlymodifier": "Sólo modificador (ej criatura)", "BOL.itemProperty.onlymodifier": "Sólo modificador (ej criatura)",
"BOL.itemProperty.attackMalusDice": "Dado Desventaja Ataque",
"BOL.itemStat.quantity": "Cantidad", "BOL.itemStat.quantity": "Cantidad",
"BOL.itemStat.weight": "Peso", "BOL.itemStat.weight": "Peso",
@@ -534,6 +535,7 @@
"BOL.chat.criticalinfo": "¡Esto es un éxito Asombroso o Legendario! Escoge tus opciones y efectos", "BOL.chat.criticalinfo": "¡Esto es un éxito Asombroso o Legendario! Escoge tus opciones y efectos",
"BOL.chat.criticalbuttonjournal": "Éxito Asombroso/Legendario", "BOL.chat.criticalbuttonjournal": "Éxito Asombroso/Legendario",
"BOL.chat.armorRoll": "Tirada de Armadura", "BOL.chat.armorRoll": "Tirada de Armadura",
"BOL.chat.bolRulebookMessage": "Don't miss the full Rulebook module (including Sagas) available at : https://www.ludospherik-editions.com/en_gb/ !",
"BOL.dialog.soeasy": "Demasiado fácil (+4)", "BOL.dialog.soeasy": "Demasiado fácil (+4)",
"BOL.dialog.veryeasy": "Muy fácil (+2)", "BOL.dialog.veryeasy": "Muy fácil (+2)",

View File

@@ -394,6 +394,7 @@
"BOL.itemProperty.isboarding": "Abordage", "BOL.itemProperty.isboarding": "Abordage",
"BOL.itemProperty.isspur": "Eperonnage", "BOL.itemProperty.isspur": "Eperonnage",
"BOL.itemProperty.isbreakrow": "Briser les rames", "BOL.itemProperty.isbreakrow": "Briser les rames",
"BOL.itemProperty.attackMalusDice": "Malus d'attaque (Dés)",
"BOL.itemStat.quantity": "Quantité", "BOL.itemStat.quantity": "Quantité",
"BOL.itemStat.weight": "Poids", "BOL.itemStat.weight": "Poids",
@@ -569,21 +570,29 @@
"BOL.chat.criticalinfo": "C'est un succès Héroïque ! Choisissez vos options et effets !", "BOL.chat.criticalinfo": "C'est un succès Héroïque ! Choisissez vos options et effets !",
"BOL.chat.criticallegendaryinfo": "C'est un succès Légendaire ! Choisissez vos options et effets !", "BOL.chat.criticallegendaryinfo": "C'est un succès Légendaire ! Choisissez vos options et effets !",
"BOL.chat.criticalbuttonjournal": "Succès Héroïque/Légendaire", "BOL.chat.criticalbuttonjournal": "Succès Héroïque/Légendaire",
"BOL.chat.bolRulebookMessage": "N'oubliez pas le module complet du Livre de Règle et des Sagas disponible ici : https://www.ludospherik-editions.com !",
"BOL.chat.losshp": "{name} a perdu {lossHP} points de Vitalité. Si il se repose quelques minutes, il peut récupérer {recupHP} points de Vitalité.", "BOL.chat.losshp": "{name} a perdu {lossHP} points de Vitalité. Si il se repose quelques minutes, il peut récupérer {recupHP} points de Vitalité.",
"BOL.chat.applyrecup": "Récupérer pendant quelques minutes (+{recupHP} Vitalité)", "BOL.chat.applyrecup": "Récupérer pendant quelques minutes (+{recupHP} Vitalité)",
"BOL.chat.inforecup": "{name} vient de récupérer {recupHP} points de Vitalité après quelques minutes de repos.", "BOL.chat.inforecup": "{name} vient de récupérer {recupHP} points de Vitalité après quelques minutes de repos.",
"BOL.chat.defenseReduceDamage2": "Vous pouvez également dépenser 1 Point d'Héroisme/Vilainie pour regagner [[/r 2d6KH(1D6B)]] points de vitalité, cela vous coutera votre prochaine action.",
"BOL.chat.armorRoll": "Jet d'armure ",
"BOL.dialog.soeasy": "Inmanquable (+4)", "BOL.dialog.soeasy": "Inmanquable (+4)",
"BOL.dialog.soeasy3": "Inmanquable (+3)",
"BOL.dialog.veryeasy": "Trés Facile (+2)", "BOL.dialog.veryeasy": "Trés Facile (+2)",
"BOL.dialog.easy": "Facile (+1)", "BOL.dialog.easy": "Facile (+1)",
"BOL.dialog.moderate": "Moyenne (0)", "BOL.dialog.moderate": "Moyenne (0)",
"BOL.dialog.hard": "Ardue (-1)", "BOL.dialog.hard": "Ardue (-1)",
"BOL.dialog.tough": "Difficile (-2)", "BOL.dialog.tough": "Difficile (-2)",
"BOL.dialog.tough3": "Difficile (-3)",
"BOL.dialog.demanding": "Très Difficile (-4)", "BOL.dialog.demanding": "Très Difficile (-4)",
"BOL.dialog.demanding5": "Très Difficile (-5)",
"BOL.dialog.formidable": "Impossible (-6)", "BOL.dialog.formidable": "Impossible (-6)",
"BOL.dialog.formidable7": "Impossible (-7)",
"BOL.dialog.heroic": "Héroïque (-8)", "BOL.dialog.heroic": "Héroïque (-8)",
"BOL.dialog.heroic9": "Héroïque (-9)",
"BOL.dialog.mythic": "Mythique (-10)", "BOL.dialog.mythic": "Mythique (-10)",
"BOL.dialog.mythic11": "Mythique (-11)",
"BOL.dialog.divine": "Divine (-12)", "BOL.dialog.divine": "Divine (-12)",
"BOL.dialog.pointblank": "Bout portant (+1)", "BOL.dialog.pointblank": "Bout portant (+1)",
@@ -611,16 +620,15 @@
"BOL.chat.welcome1": "Bienvenue dans Barbarians of Lemuria (Ludospherik version)", "BOL.chat.welcome1": "Bienvenue dans Barbarians of Lemuria (Ludospherik version)",
"BOL.chat.welcome2": "Les livres nécessaires pour jouer sont disponibles sur le site de <a href='http://www.ludospherik.fr/content/14-barbarians-of-lemuria'>l'éditeur Ludospherik.</a>", "BOL.chat.welcome2": "Les livres nécessaires pour jouer sont disponibles sur le site de <a href='http://www.ludospherik.fr/content/14-barbarians-of-lemuria'>l'éditeur Ludospherik.</a>",
"BOL.chat.welcome3": "Les cartes intégrées au système le sont grace à l'aimable autorisation de leur auteur Guillaume Tavernier et des éditions Ludospherik. Merci à eux !.", "BOL.chat.welcome3": "Les cartes intégrées au système le sont grace à l'aimable autorisation d'Emmanuel Roudier et des éditions Ludospherik. Merci à eux !.",
"BOL.chat.welcome4": "Tout le support et le suivi de ce système est disponible via le <a href='https://discord.gg/pPSDNJk'>Discord Foundry FR</a>.", "BOL.chat.welcome4": "Tout le support et le suivi de ce système est disponible via le <a href='https://discord.gg/pPSDNJk'>Discord Foundry FR</a>.",
"BOL.chat.welcome5": "Consulter l'aide en ligne pour plus d'informations : @UUID[Compendium.bol.aides-de-jeu.JournalEntry.8ihDiCxC47fcdKVA]{Aide du Jeu}.", "BOL.chat.welcome5": "Consulter l'aide en ligne pour plus d'informations : @UUID[Compendium.bol.aides-de-jeu.JournalEntry.8ihDiCxC47fcdKVA]{Aide du Jeu}.<br>Si vous souhaitez jouer en anglais, n'oubliez pas d'activer le module Babele.",
"BOL.chat.welcome6": "Bon jeu en Lemurie !", "BOL.chat.welcome6": "Bon jeu en Lemurie !",
"BOL.chat.nodamage": "Ne pas appliquer les dommages", "BOL.chat.nodamage": "Ne pas appliquer les dommages",
"BOL.chat.pcwarning": "Attention ! Aucun personnage n'est relié au joueur !", "BOL.chat.pcwarning": "Attention ! Aucun personnage n'est relié au joueur !",
"BOL.chat.pcwarningmsg": "<b>ATTENTION</b> Le joueur n'est relié à aucun personnage !", "BOL.chat.pcwarningmsg": "<b>ATTENTION</b> Le joueur n'est relié à aucun personnage !",
"BOL.chat.pcnotlinked": "Le token du personnage joueur n'est pas relié à l'acteur", "BOL.chat.pcnotlinked": "Le token du personnage joueur n'est pas relié à l'acteur",
"BOL.chat.pcnotlinkedmsg": "<b>ATTENTION</b> Le token du personnage joueur n'est pas relié à l'acteur !", "BOL.chat.pcnotlinkedmsg": "<b>ATTENTION</b> Le token du personnage joueur n'est pas relié à l'acteur !",
"BOL.chat.armorRoll": "Jet d'armure",
"BOL.settings.rollArmor": "Effectuer des jets pour les armures", "BOL.settings.rollArmor": "Effectuer des jets pour les armures",
"BOL.settings.rollArmorTooltip": "Effectue un jet de dés pour les armures (valeur fixe si désactivé)", "BOL.settings.rollArmorTooltip": "Effectue un jet de dés pour les armures (valeur fixe si désactivé)",

View File

@@ -5,7 +5,7 @@
import { BoLRoll } from "../controllers/bol-rolls.js"; import { BoLRoll } from "../controllers/bol-rolls.js";
import { BoLUtility } from "../system/bol-utility.js"; import { BoLUtility } from "../system/bol-utility.js";
export class BoLActorSheet extends ActorSheet { export class BoLActorSheet extends foundry.appv1.sheets.ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
@@ -170,8 +170,8 @@ export class BoLActorSheet extends ActorSheet {
formData.charType = this.actor.getCharType() formData.charType = this.actor.getCharType()
formData.villainy = this.actor.getVillainy() formData.villainy = this.actor.getVillainy()
formData.isUndead = this.actor.isUndead() formData.isUndead = this.actor.isUndead()
formData.biography = await TextEditor.enrichHTML(this.object.system.details?.biography || "", { async: true }) formData.biography = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.details?.biography || "", { async: true })
formData.notes = await TextEditor.enrichHTML(this.object.system.details.notes || "", { async: true }) formData.notes = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.details.notes || "", { async: true })
formData.isSorcerer = this.actor.isSorcerer() formData.isSorcerer = this.actor.isSorcerer()
formData.isAlchemist = this.actor.isAlchemist() formData.isAlchemist = this.actor.isAlchemist()
formData.isAstrologer = this.actor.isAstrologer() formData.isAstrologer = this.actor.isAstrologer()

View File

@@ -5,7 +5,7 @@
import { BoLRoll } from "../controllers/bol-rolls.js"; import { BoLRoll } from "../controllers/bol-rolls.js";
import { BoLUtility } from "../system/bol-utility.js"; import { BoLUtility } from "../system/bol-utility.js";
export class BoLHordeSheet extends ActorSheet { export class BoLHordeSheet extends foundry.appv1.sheets.ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
@@ -116,7 +116,7 @@ export class BoLHordeSheet extends ActorSheet {
formData.options = this.options formData.options = this.options
formData.owner = this.document.isOwner formData.owner = this.document.isOwner
formData.editScore = this.options.editScore formData.editScore = this.options.editScore
formData.description = await TextEditor.enrichHTML(this.actor.system.description, {async: true}) formData.description = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.actor.system.description, {async: true})
formData.isGM = game.user.isGM formData.isGM = game.user.isGM

View File

@@ -5,7 +5,7 @@
import { BoLRoll } from "../controllers/bol-rolls.js"; import { BoLRoll } from "../controllers/bol-rolls.js";
import { BoLUtility } from "../system/bol-utility.js"; import { BoLUtility } from "../system/bol-utility.js";
export class BoLVehicleSheet extends ActorSheet { export class BoLVehicleSheet extends foundry.appv1.sheets.ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
@@ -127,7 +127,7 @@ export class BoLVehicleSheet extends ActorSheet {
formData.options = this.options formData.options = this.options
formData.owner = this.document.isOwner formData.owner = this.document.isOwner
formData.editScore = this.options.editScore formData.editScore = this.options.editScore
formData.description = await TextEditor.enrichHTML(this.actor.system.description, {async: true}) formData.description = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.actor.system.description, {async: true})
formData.isGM = game.user.isGM formData.isGM = game.user.isGM

View File

@@ -18,6 +18,9 @@ import { BoLHotbar } from "./system/bol-hotbar.js"
import { BoLCommands } from "./system/bol-commands.js" import { BoLCommands } from "./system/bol-commands.js"
import { BoLRoll } from "./controllers/bol-rolls.js" import { BoLRoll } from "./controllers/bol-rolls.js"
/* -------------------------------------------- */
const BOL_WELCOME_MESSAGE_URL = "https://www.uberwald.me/gitea/public/bol/raw/branch/v13/welcome-message-bol.html"
/* -------------------------------------------- */ /* -------------------------------------------- */
Hooks.once('init', async function () { Hooks.once('init', async function () {
@@ -51,13 +54,13 @@ Hooks.once('init', async function () {
CONFIG.Combat.documentClass = BoLCombatManager; CONFIG.Combat.documentClass = BoLCombatManager;
// Register sheet application classes // Register sheet application classes
Actors.unregisterSheet("core", ActorSheet); foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
Actors.registerSheet("bol", BoLActorSheet, { types: ["character", "encounter"], makeDefault: true }) foundry.documents.collections.Actors.registerSheet("bol", BoLActorSheet, { types: ["character", "encounter"], makeDefault: true })
Actors.registerSheet("bol", BoLVehicleSheet, { types: ["vehicle"], makeDefault: true }) foundry.documents.collections.Actors.registerSheet("bol", BoLVehicleSheet, { types: ["vehicle"], makeDefault: true })
Actors.registerSheet("bol", BoLHordeSheet, { types: ["horde"], makeDefault: true }) foundry.documents.collections.Actors.registerSheet("bol", BoLHordeSheet, { types: ["horde"], makeDefault: true })
Items.unregisterSheet("core", ItemSheet); foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
Items.registerSheet("bol", BoLItemSheet, { makeDefault: true }); foundry.documents.collections.Items.registerSheet("bol", BoLItemSheet, { makeDefault: true });
// Inot useful stuff // Inot useful stuff
BoLUtility.init() BoLUtility.init()
@@ -84,16 +87,22 @@ Hooks.once('init', async function () {
/* -------------------------------------------- */ /* -------------------------------------------- */
function welcomeMessage() { function welcomeMessage() {
let content = `<div id="welcome-message-bol"><span class="rdd-roll-part">
<strong>` + game.i18n.localize("BOL.chat.welcome1") + `</strong><p>` +
game.i18n.localize("BOL.chat.welcome2") + "</p><p>" +
game.i18n.localize("BOL.chat.welcome3") + "</p><p>" +
game.i18n.localize("BOL.chat.welcome4") + "</p><p>" +
game.i18n.localize("BOL.chat.welcome5") + "</p>" +
game.i18n.localize("BOL.chat.welcome6")
let rulebook = game.modules.find(m => m.id === "bol-rulebook")
if (!rulebook) {
content += "<p>" + game.i18n.localize("BOL.chat.bolRulebookMessage") + "</p>"
}
ChatMessage.create({ ChatMessage.create({
user: game.user.id, user: game.user.id,
whisper: [game.user.id], whisper: [game.user.id],
content: `<div id="welcome-message-bol"><span class="rdd-roll-part"> content: content
<strong>` + game.i18n.localize("BOL.chat.welcome1") + `</strong><p>` +
game.i18n.localize("BOL.chat.welcome2") + "<p>" +
game.i18n.localize("BOL.chat.welcome3") + "<p>" +
game.i18n.localize("BOL.chat.welcome4") + "</p>" +
game.i18n.localize("BOL.chat.welcome5") + "<br>" +
game.i18n.localize("BOL.chat.welcome6")
}) })
if (game.user.isGM && game.i18n.lang == 'en' && !game.modules.find(m => m.id == "babele")) { if (game.user.isGM && game.i18n.lang == 'en' && !game.modules.find(m => m.id == "babele")) {
@@ -101,13 +110,32 @@ function welcomeMessage() {
user: game.user.id, user: game.user.id,
whisper: [game.user.id], whisper: [game.user.id],
content: `<div id="welcome-message-bol"><span class="rdd-roll-part"> content: `<div id="welcome-message-bol"><span class="rdd-roll-part">
<strong>WARNING ! English language selected, but babele module is not installed !<br>Please install babele from the module tab in Foundry interface.` <strong>WARNING ! English language selected, but Babele module is not installed !<br>Please install babele from the module tab in Foundry interface.`
}) })
ui.notifications.warn("WARNING ! English language selected, but babele module is not installed !<br>Please install babele from the module tab in Foundry interface.") ui.notifications.warn("WARNING ! English language selected, but babele module is not installed !<br>Please install babele from the module tab in Foundry interface.")
} }
} }
/* -------------------------------------------- */
function welcomeMessageRepository() {
if (game.user.isGM) {
// Try to fetch the welcome message from the github repo "welcome-message-ecryme.html"
fetch(BOL_WELCOME_MESSAGE_URL)
.then(response => response.text())
.then(html => {
ChatMessage.create({
user: game.user.id,
whisper: [game.user.id],
content: html
});
})
.catch(error => {
console.error("Error fetching welcome message:", error);
});
}
}
/* -------------------------------------------- */ /* -------------------------------------------- */
Hooks.once('ready', async function () { Hooks.once('ready', async function () {
@@ -121,6 +149,7 @@ Hooks.once('ready', async function () {
) )
welcomeMessage() welcomeMessage()
welcomeMessageRepository();
// User warning // User warning
if (!game.user.isGM && game.user.character == undefined) { if (!game.user.isGM && game.user.character == undefined) {
@@ -168,5 +197,3 @@ Hooks.once('ready', async function () {
} }
}) })

View File

@@ -482,10 +482,15 @@ export class BoLRoll {
if (rollData.mode == "weapon") { if (rollData.mode == "weapon") {
rollData.weaponModifier = rollData.weapon.system.properties.attackModifiers ?? 0 rollData.weaponModifier = rollData.weapon.system.properties.attackModifiers ?? 0
rollData.attackBonusDice = rollData.weapon.system.properties.attackBonusDice rollData.attackBonusDice = rollData.weapon.system.properties.attackBonusDice
rollData.attackMalusDice = rollData.weapon.system.properties.attackMalusDice
if (rollData.attackBonusDice) { if (rollData.attackBonusDice) {
rollData.adv = "1B" rollData.adv = "1B"
rollData.bDice = 1 rollData.bDice = 1
} }
if (rollData.attackMalusDice) {
rollData.adv = "1M"
rollData.mDice = 1
}
if (defender) { // If target is selected if (defender) { // If target is selected
rollData.defence = defender.defenseValue rollData.defence = defender.defenseValue
rollData.armorMalus = defender.armorMalusValue rollData.armorMalus = defender.armorMalusValue
@@ -534,6 +539,7 @@ export class BoLRoll {
rollData.id = foundry.utils.randomID(16) rollData.id = foundry.utils.randomID(16)
rollData.weaponModifier = 0 rollData.weaponModifier = 0
rollData.attackBonusDice = false rollData.attackBonusDice = false
rollData.attackMalusDice = false
rollData.armorMalus = 0 rollData.armorMalus = 0
// Specific stuff // Specific stuff
this.preProcessWeapon(rollData, defender) this.preProcessWeapon(rollData, defender)
@@ -551,7 +557,7 @@ export class BoLRoll {
console.log("ROLLDATA", rollData) console.log("ROLLDATA", rollData)
// Then display+process the dialog // Then display+process the dialog
const rollOptionContent = await renderTemplate(rollOptionTpl, rollData); const rollOptionContent = await foundry.applications.handlebars.renderTemplate(rollOptionTpl, rollData);
let d = new Dialog({ let d = new Dialog({
title: rollData.label, title: rollData.label,
content: rollOptionContent, content: rollOptionContent,
@@ -805,13 +811,13 @@ export class BoLDefaultRoll {
/* -------------------------------------------- */ /* -------------------------------------------- */
_buildDamageChatMessage(rollData) { _buildDamageChatMessage(rollData) {
const rollMessageTpl = 'systems/bol/templates/chat/rolls/damage-roll-card.hbs'; const rollMessageTpl = 'systems/bol/templates/chat/rolls/damage-roll-card.hbs';
return renderTemplate(rollMessageTpl, rollData) return foundry.applications.handlebars.renderTemplate(rollMessageTpl, rollData)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
_buildChatMessage(rollData) { _buildChatMessage(rollData) {
const rollMessageTpl = 'systems/bol/templates/chat/rolls/default-roll-card.hbs' const rollMessageTpl = 'systems/bol/templates/chat/rolls/default-roll-card.hbs'
return renderTemplate(rollMessageTpl, rollData) return foundry.applications.handlebars.renderTemplate(rollMessageTpl, rollData)
} }
} }

View File

@@ -4,7 +4,7 @@ import { BoLUtility } from "../system/bol-utility.js";
* Extend the basic ItemSheet with some very simple modifications * Extend the basic ItemSheet with some very simple modifications
* @extends {ItemSheet} * @extends {ItemSheet}
*/ */
export class BoLItemSheet extends ItemSheet { export class BoLItemSheet extends foundry.appv1.sheets.ItemSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
@@ -13,6 +13,7 @@ export class BoLItemSheet extends ItemSheet {
template: "systems/bol/templates/item/item-sheet.hbs", template: "systems/bol/templates/item/item-sheet.hbs",
width: 650, width: 650,
height: 780, height: 780,
dragDrop: [{ dragSelector: null, dropSelector: null }],
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }] tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }]
}); });
} }
@@ -27,7 +28,7 @@ export class BoLItemSheet extends ItemSheet {
data.category = itemData.system.category data.category = itemData.system.category
data.isGM = game.user.isGM; data.isGM = game.user.isGM;
data.itemProperties = this.item.itemProperties; data.itemProperties = this.item.itemProperties;
data.description = await TextEditor.enrichHTML(this.object.system.description, { async: true }) data.description = await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true })
if (data.document.actor) { if (data.document.actor) {
data.careers = data.document.actor.careers data.careers = data.document.actor.careers
} }
@@ -102,6 +103,7 @@ export class BoLItemSheet extends ItemSheet {
activateListeners(html) { activateListeners(html) {
super.activateListeners(html); super.activateListeners(html);
// Everything below here is only needed if the sheet is editable // Everything below here is only needed if the sheet is editable
if (!this.options.editable) return; if (!this.options.editable) return;
// Roll handlers, click handlers, etc. would go here. // Roll handlers, click handlers, etc. would go here.

View File

@@ -12,8 +12,8 @@ export class BoLTokenHud {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async removeExtensionHud(app, html, tokenId) { static async removeExtensionHud(app, html, tokenId) {
html.find('.control-icon.bol-roll').remove() $(html).find('.control-icon.bol-roll').remove()
html.find('.control-icon.bol-action').remove() $(html).find('.control-icon.bol-action').remove()
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -25,7 +25,7 @@ export class BoLTokenHud {
const hudData = { actor: actor, actionsList: actor.buildListeActions(), rollsList: actor.buildRollList() } const hudData = { actor: actor, actionsList: actor.buildListeActions(), rollsList: actor.buildRollList() }
const controlIconActions = html.find('.control-icon[data-action=combat]'); const controlIconActions = $(html).find('.control-icon[data-action=combat]');
// initiative // initiative
await BoLTokenHud._configureSubMenu(controlIconActions, 'systems/bol/templates/token/hud-actor-actions.hbs', hudData, await BoLTokenHud._configureSubMenu(controlIconActions, 'systems/bol/templates/token/hud-actor-actions.hbs', hudData,
(event) => { (event) => {
@@ -43,7 +43,7 @@ export class BoLTokenHud {
} }
}) })
const controlIconTarget = html.find('.control-icon[data-action=target]'); const controlIconTarget = $(html).find('.control-icon[data-action=target]');
// att+apt+career // att+apt+career
await BoLTokenHud._configureSubMenu(controlIconTarget, 'systems/bol/templates/token/hud-actor-rolls.hbs', hudData, await BoLTokenHud._configureSubMenu(controlIconTarget, 'systems/bol/templates/token/hud-actor-rolls.hbs', hudData,
(event) => { (event) => {
@@ -59,7 +59,7 @@ export class BoLTokenHud {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async addTokenHudExtensions(app, html, tokenId) { static async addTokenHudExtensions(app, html, 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) {
BoLTokenHud.addExtensionHud(app, html, tokenId); BoLTokenHud.addExtensionHud(app, html, tokenId);
} }
@@ -67,7 +67,7 @@ export class BoLTokenHud {
/* -------------------------------------------- */ /* -------------------------------------------- */
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.bol-hud-list') const list = hud.find('div.bol-hud-list')
BoLTokenHud._toggleHudListActive(hud, list); BoLTokenHud._toggleHudListActive(hud, list);

View File

@@ -331,7 +331,7 @@ export class BoLCalendar extends Application {
calendrierData.jourMoisOptions = RdDCalendrier.buildJoursMois(); calendrierData.jourMoisOptions = RdDCalendrier.buildJoursMois();
calendrierData.heuresOptions = [0, 1]; calendrierData.heuresOptions = [0, 1];
calendrierData.minutesOptions = Array(RDD_MINUTES_PAR_HEURES).fill().map((item, index) => 0 + index); calendrierData.minutesOptions = Array(RDD_MINUTES_PAR_HEURES).fill().map((item, index) => 0 + index);
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/calendar-editor-template.html', calendrierData); let html = await foundry.applications.handlebars.renderTemplate('systems/foundryvtt-reve-de-dragon/templates/calendar-editor-template.html', calendrierData);
this.editeur = new RdDCalendrierEditeur(html, this, calendrierData) this.editeur = new RdDCalendrierEditeur(html, this, calendrierData)
} }
this.editeur.updateData(calendrierData); this.editeur.updateData(calendrierData);

View File

@@ -344,7 +344,7 @@ export class BoLUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async chatMessageHandler(message, html, data) { static async chatMessageHandler(message, html, data) {
const chatCard = html.find('.flavor-text') const chatCard = $(html).find('.flavor-text')
if (chatCard.length > 0) { if (chatCard.length > 0) {
// If the user is the message author or the actor owner, proceed // If the user is the message author or the actor owner, proceed
const actor = game.actors.get(data.message.speaker.actor) const actor = game.actors.get(data.message.speaker.actor)
@@ -381,6 +381,8 @@ export class BoLUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async chatListeners(html) { static async chatListeners(html) {
html = $(html);
// Damage handling // Damage handling
html.on("click", '.chat-damage-apply', event => { html.on("click", '.chat-damage-apply', event => {
let rollData = BoLUtility.getRollDataFromMessage(event) let rollData = BoLUtility.getRollDataFromMessage(event)
@@ -480,17 +482,20 @@ export class BoLUtility {
if (defenseMode == 'damage-with-armor') { if (defenseMode == 'damage-with-armor') {
let armorFormula = defender.getArmorFormula() let armorFormula = defender.getArmorFormula()
rollData.armorProtect = 0
armorFormula = String(armorFormula) || "0"
if (armorFormula && armorFormula != "0" ) {
rollData.rollArmor = new Roll(armorFormula) rollData.rollArmor = new Roll(armorFormula)
await rollData.rollArmor.roll() await rollData.rollArmor.roll()
let msg = await rollData.rollArmor.toMessage({ flavor: "BOL.chat.armorRoll : " + armorFormula }); let msg = await rollData.rollArmor.toMessage({ flavor: game.i18n.localize("BOL.chat.armorRoll") + " : " + armorFormula });
if (game.dice3d) { // wait animation end when DsN is there if (game.dice3d) { // wait animation end when DsN is there
await game.dice3d.waitFor3DAnimationByMessageID(msg.id); await game.dice3d.waitFor3DAnimationByMessageID(msg.id);
} }
rollData.armorProtect = (rollData.rollArmor.total < 0) ? 0 : rollData.rollArmor.total rollData.armorProtect = (rollData.rollArmor.total < 0) ? 0 : rollData.rollArmor.total
}
rollData.finalDamage = rollData.damageTotal - rollData.armorProtect rollData.finalDamage = rollData.damageTotal - rollData.armorProtect
rollData.finalDamage = (rollData.finalDamage < 0) ? 0 : rollData.finalDamage rollData.finalDamage = (rollData.finalDamage < 0) ? 0 : rollData.finalDamage
await defender.sufferDamage(rollData.finalDamage) await defender.sufferDamage(rollData.finalDamage)
console.log("Armor roll -> result ", rollData)
} }
if (defenseMode == 'damage-without-armor') { if (defenseMode == 'damage-without-armor') {
rollData.finalDamage = rollData.damageTotal rollData.finalDamage = rollData.damageTotal

View File

@@ -190,15 +190,21 @@ BOL.rangeModifiers = {
BOL.difficultyModifiers = { BOL.difficultyModifiers = {
"4": "BOL.dialog.soeasy", "4": "BOL.dialog.soeasy",
"3": "BOL.dialog.soeasy3",
"2": "BOL.dialog.veryeasy", "2": "BOL.dialog.veryeasy",
"1": "BOL.dialog.easy", "1": "BOL.dialog.easy",
"0": "BOL.dialog.moderate", "0": "BOL.dialog.moderate",
"-1": "BOL.dialog.hard", "-1": "BOL.dialog.hard",
"-2": "BOL.dialog.tough", "-2": "BOL.dialog.tough",
"-3": "BOL.dialog.tough3",
"-4": "BOL.dialog.demanding", "-4": "BOL.dialog.demanding",
"-5": "BOL.dialog.demanding5",
"-6": "BOL.dialog.formidable", "-6": "BOL.dialog.formidable",
"-7": "BOL.dialog.formidable7",
"-8": "BOL.dialog.heroic", "-8": "BOL.dialog.heroic",
"-9": "BOL.dialog.heroic9",
"-10": "BOL.dialog.mythic", "-10": "BOL.dialog.mythic",
"-11": "BOL.dialog.mythic11",
"-12": "BOL.dialog.divine" "-12": "BOL.dialog.divine"
} }

View File

@@ -15,7 +15,7 @@ export default function registerHooks() {
})) }))
Hooks.on('renderChatLog', (log, html, data) => BoLUtility.chatListeners(html)) Hooks.on('renderChatLog', (log, html, data) => BoLUtility.chatListeners(html))
Hooks.on('renderChatMessage', (message, html, data) => BoLUtility.chatMessageHandler(message, html, data)) Hooks.on('renderChatMessageHTML', (message, html, data) => BoLUtility.chatMessageHandler(message, html, data))
/** /**
* Create a macro when dropping an entity on the hotbar * Create a macro when dropping an entity on the hotbar
@@ -73,7 +73,7 @@ export default function registerHooks() {
button.addEventListener('click', () => { button.addEventListener('click', () => {
game.bol.charSummary.render(true) game.bol.charSummary.render(true)
}) })
html.find('.header-actions').after(button) $(html).find('.header-actions').after(button)
} }
}) })

View File

@@ -66,5 +66,5 @@ export const preloadHandlebarsTemplates = async function () {
]; ];
// Load the template parts // Load the template parts
return loadTemplates(templatePaths); return foundry.applications.handlebars.loadTemplates(templatePaths);
}; };

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000703 MANIFEST-000990

View File

@@ -1,8 +1,7 @@
2025/02/09-21:03:41.921435 7f46ac7f86c0 Recovering log #701 2026/01/19-19:47:49.729596 7f14da7fc6c0 Recovering log #988
2025/02/09-21:03:41.977618 7f46ac7f86c0 Delete type=3 #699 2026/01/19-19:47:49.739434 7f14da7fc6c0 Delete type=3 #986
2025/02/09-21:03:41.977674 7f46ac7f86c0 Delete type=0 #701 2026/01/19-19:47:49.739512 7f14da7fc6c0 Delete type=0 #988
2025/02/09-21:08:13.824305 7f46abbff6c0 Level-0 table #706: started 2026/01/19-20:19:02.579851 7f1243fff6c0 Level-0 table #993: started
2025/02/09-21:08:13.824341 7f46abbff6c0 Level-0 table #706: 0 bytes OK 2026/01/19-20:19:02.579872 7f1243fff6c0 Level-0 table #993: 0 bytes OK
2025/02/09-21:08:13.861716 7f46abbff6c0 Delete type=0 #704 2026/01/19-20:19:02.585797 7f1243fff6c0 Delete type=0 #991
2025/02/09-21:08:13.937169 7f46abbff6c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end) 2026/01/19-20:19:02.586018 7f1243fff6c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2025/02/09-21:08:13.937236 7f46abbff6c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,7 @@
2025/02/09-20:59:17.938444 7f46ad7fa6c0 Recovering log #697 2026/01/18-20:07:47.845406 7f14d8ff96c0 Recovering log #984
2025/02/09-20:59:17.997288 7f46ad7fa6c0 Delete type=3 #695 2026/01/18-20:07:47.861224 7f14d8ff96c0 Delete type=3 #982
2025/02/09-20:59:17.997363 7f46ad7fa6c0 Delete type=0 #697 2026/01/18-20:07:47.861280 7f14d8ff96c0 Delete type=0 #984
2025/02/09-21:03:16.055817 7f46abbff6c0 Level-0 table #702: started 2026/01/18-20:13:44.130598 7f1243fff6c0 Level-0 table #989: started
2025/02/09-21:03:16.055842 7f46abbff6c0 Level-0 table #702: 0 bytes OK 2026/01/18-20:13:44.130625 7f1243fff6c0 Level-0 table #989: 0 bytes OK
2025/02/09-21:03:16.065285 7f46abbff6c0 Delete type=0 #700 2026/01/18-20:13:44.157241 7f1243fff6c0 Delete type=0 #987
2025/02/09-21:03:16.076115 7f46abbff6c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end) 2026/01/18-20:13:44.192634 7f1243fff6c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2025/02/09-21:03:16.076162 7f46abbff6c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/armors/000882.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000608 MANIFEST-000895

View File

@@ -1,8 +1,7 @@
2025/02/09-21:03:41.809335 7f46ad7fa6c0 Recovering log #606 2026/01/19-19:47:49.702991 7f14d97fa6c0 Recovering log #893
2025/02/09-21:03:41.864387 7f46ad7fa6c0 Delete type=3 #604 2026/01/19-19:47:49.714316 7f14d97fa6c0 Delete type=3 #891
2025/02/09-21:03:41.864466 7f46ad7fa6c0 Delete type=0 #606 2026/01/19-19:47:49.714383 7f14d97fa6c0 Delete type=0 #893
2025/02/09-21:08:13.781326 7f46abbff6c0 Level-0 table #611: started 2026/01/19-20:19:02.560145 7f1243fff6c0 Level-0 table #898: started
2025/02/09-21:08:13.781348 7f46abbff6c0 Level-0 table #611: 0 bytes OK 2026/01/19-20:19:02.560173 7f1243fff6c0 Level-0 table #898: 0 bytes OK
2025/02/09-21:08:13.824160 7f46abbff6c0 Delete type=0 #609 2026/01/19-20:19:02.566093 7f1243fff6c0 Delete type=0 #896
2025/02/09-21:08:13.937147 7f46abbff6c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end) 2026/01/19-20:19:02.585964 7f1243fff6c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2025/02/09-21:08:13.937226 7f46abbff6c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,7 @@
2025/02/09-20:59:17.827437 7f46ac7f86c0 Recovering log #602 2026/01/18-20:07:47.807797 7f14d9ffb6c0 Recovering log #889
2025/02/09-20:59:17.879532 7f46ac7f86c0 Delete type=3 #600 2026/01/18-20:07:47.824331 7f14d9ffb6c0 Delete type=3 #887
2025/02/09-20:59:17.879590 7f46ac7f86c0 Delete type=0 #602 2026/01/18-20:07:47.824381 7f14d9ffb6c0 Delete type=0 #889
2025/02/09-21:03:16.035329 7f46abbff6c0 Level-0 table #607: started 2026/01/18-20:13:44.157350 7f1243fff6c0 Level-0 table #894: started
2025/02/09-21:03:16.035352 7f46abbff6c0 Level-0 table #607: 0 bytes OK 2026/01/18-20:13:44.157372 7f1243fff6c0 Level-0 table #894: 0 bytes OK
2025/02/09-21:03:16.045034 7f46abbff6c0 Delete type=0 #605 2026/01/18-20:13:44.192480 7f1243fff6c0 Delete type=0 #892
2025/02/09-21:03:16.076082 7f46abbff6c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end) 2026/01/18-20:13:44.192647 7f1243fff6c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2025/02/09-21:03:16.076141 7f46abbff6c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/boons/000976.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000701 MANIFEST-000989

View File

@@ -1,8 +1,7 @@
2025/02/09-21:03:41.320998 7f46ad7fa6c0 Recovering log #699 2026/01/19-19:47:49.594444 7f14d8ff96c0 Recovering log #987
2025/02/09-21:03:41.379602 7f46ad7fa6c0 Delete type=3 #697 2026/01/19-19:47:49.605020 7f14d8ff96c0 Delete type=3 #985
2025/02/09-21:03:41.379672 7f46ad7fa6c0 Delete type=0 #699 2026/01/19-19:47:49.605095 7f14d8ff96c0 Delete type=0 #987
2025/02/09-21:08:13.416327 7f46abbff6c0 Level-0 table #704: started 2026/01/19-20:19:02.521702 7f1243fff6c0 Level-0 table #992: started
2025/02/09-21:08:13.416368 7f46abbff6c0 Level-0 table #704: 0 bytes OK 2026/01/19-20:19:02.521733 7f1243fff6c0 Level-0 table #992: 0 bytes OK
2025/02/09-21:08:13.450046 7f46abbff6c0 Delete type=0 #702 2026/01/19-20:19:02.528339 7f1243fff6c0 Delete type=0 #990
2025/02/09-21:08:13.619475 7f46abbff6c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end) 2026/01/19-20:19:02.534634 7f1243fff6c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2025/02/09-21:08:13.619518 7f46abbff6c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,7 @@
2025/02/09-20:59:17.353894 7f46ac7f86c0 Recovering log #695 2026/01/18-20:07:47.640110 7f14da7fc6c0 Recovering log #983
2025/02/09-20:59:17.426355 7f46ac7f86c0 Delete type=3 #693 2026/01/18-20:07:47.659075 7f14da7fc6c0 Delete type=3 #981
2025/02/09-20:59:17.426417 7f46ac7f86c0 Delete type=0 #695 2026/01/18-20:07:47.659147 7f14da7fc6c0 Delete type=0 #983
2025/02/09-21:03:15.983259 7f46abbff6c0 Level-0 table #700: started 2026/01/18-20:13:43.881522 7f1243fff6c0 Level-0 table #988: started
2025/02/09-21:03:15.983288 7f46abbff6c0 Level-0 table #700: 0 bytes OK 2026/01/18-20:13:43.881548 7f1243fff6c0 Level-0 table #988: 0 bytes OK
2025/02/09-21:03:15.993465 7f46abbff6c0 Delete type=0 #698 2026/01/18-20:13:43.921371 7f1243fff6c0 Delete type=0 #986
2025/02/09-21:03:15.993623 7f46abbff6c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end) 2026/01/18-20:13:43.921513 7f1243fff6c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2025/02/09-21:03:15.993644 7f46abbff6c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/boons/MANIFEST-000989 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000701 MANIFEST-000988

View File

@@ -1,8 +1,7 @@
2025/02/09-21:03:41.382276 7f46acff96c0 Recovering log #699 2026/01/19-19:47:49.609310 7f14da7fc6c0 Recovering log #986
2025/02/09-21:03:41.442932 7f46acff96c0 Delete type=3 #697 2026/01/19-19:47:49.619302 7f14da7fc6c0 Delete type=3 #984
2025/02/09-21:03:41.443024 7f46acff96c0 Delete type=0 #699 2026/01/19-19:47:49.619373 7f14da7fc6c0 Delete type=0 #986
2025/02/09-21:08:13.450196 7f46abbff6c0 Level-0 table #704: started 2026/01/19-20:19:02.515027 7f1243fff6c0 Level-0 table #991: started
2025/02/09-21:08:13.450228 7f46abbff6c0 Level-0 table #704: 0 bytes OK 2026/01/19-20:19:02.515048 7f1243fff6c0 Level-0 table #991: 0 bytes OK
2025/02/09-21:08:13.487281 7f46abbff6c0 Delete type=0 #702 2026/01/19-20:19:02.521555 7f1243fff6c0 Delete type=0 #989
2025/02/09-21:08:13.619490 7f46abbff6c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end) 2026/01/19-20:19:02.534623 7f1243fff6c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2025/02/09-21:08:13.619526 7f46abbff6c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,7 @@
2025/02/09-20:59:17.429632 7f46adffb6c0 Recovering log #695 2026/01/18-20:07:47.664234 7f14d8ff96c0 Recovering log #982
2025/02/09-20:59:17.481748 7f46adffb6c0 Delete type=3 #693 2026/01/18-20:07:47.679427 7f14d8ff96c0 Delete type=3 #980
2025/02/09-20:59:17.481825 7f46adffb6c0 Delete type=0 #695 2026/01/18-20:07:47.679484 7f14d8ff96c0 Delete type=0 #982
2025/02/09-21:03:15.948051 7f46abbff6c0 Level-0 table #700: started 2026/01/18-20:13:43.851971 7f1243fff6c0 Level-0 table #987: started
2025/02/09-21:03:15.948090 7f46abbff6c0 Level-0 table #700: 0 bytes OK 2026/01/18-20:13:43.851994 7f1243fff6c0 Level-0 table #987: 0 bytes OK
2025/02/09-21:03:15.959765 7f46abbff6c0 Delete type=0 #698 2026/01/18-20:13:43.881382 7f1243fff6c0 Delete type=0 #985
2025/02/09-21:03:15.993593 7f46abbff6c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end) 2026/01/18-20:13:43.921506 7f1243fff6c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2025/02/09-21:03:15.993629 7f46abbff6c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/careers/000975.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000701 MANIFEST-000988

View File

@@ -1,8 +1,7 @@
2025/02/09-21:03:41.500201 7f46adffb6c0 Recovering log #699 2026/01/19-19:47:49.635172 7f14d8ff96c0 Recovering log #986
2025/02/09-21:03:41.567584 7f46adffb6c0 Delete type=3 #697 2026/01/19-19:47:49.644889 7f14d8ff96c0 Delete type=3 #984
2025/02/09-21:03:41.567676 7f46adffb6c0 Delete type=0 #699 2026/01/19-19:47:49.644941 7f14d8ff96c0 Delete type=0 #986
2025/02/09-21:08:13.538887 7f46abbff6c0 Level-0 table #704: started 2026/01/19-20:19:02.508864 7f1243fff6c0 Level-0 table #991: started
2025/02/09-21:08:13.538915 7f46abbff6c0 Level-0 table #704: 0 bytes OK 2026/01/19-20:19:02.508913 7f1243fff6c0 Level-0 table #991: 0 bytes OK
2025/02/09-21:08:13.619336 7f46abbff6c0 Delete type=0 #702 2026/01/19-20:19:02.514913 7f1243fff6c0 Delete type=0 #989
2025/02/09-21:08:13.619510 7f46abbff6c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end) 2026/01/19-20:19:02.534608 7f1243fff6c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2025/02/09-21:08:13.619540 7f46abbff6c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,7 @@
2025/02/09-20:59:17.540949 7f46acff96c0 Recovering log #695 2026/01/18-20:07:47.704039 7f14d8ff96c0 Recovering log #982
2025/02/09-20:59:17.592642 7f46acff96c0 Delete type=3 #693 2026/01/18-20:07:47.721242 7f14d8ff96c0 Delete type=3 #980
2025/02/09-20:59:17.592732 7f46acff96c0 Delete type=0 #695 2026/01/18-20:07:47.721902 7f14d8ff96c0 Delete type=0 #982
2025/02/09-21:03:16.005433 7f46abbff6c0 Level-0 table #700: started 2026/01/18-20:13:43.777269 7f1243fff6c0 Level-0 table #987: started
2025/02/09-21:03:16.005464 7f46abbff6c0 Level-0 table #700: 0 bytes OK 2026/01/18-20:13:43.777312 7f1243fff6c0 Level-0 table #987: 0 bytes OK
2025/02/09-21:03:16.014896 7f46abbff6c0 Delete type=0 #698 2026/01/18-20:13:43.819988 7f1243fff6c0 Delete type=0 #985
2025/02/09-21:03:16.035176 7f46abbff6c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end) 2026/01/18-20:13:43.921486 7f1243fff6c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2025/02/09-21:03:16.035218 7f46abbff6c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000699 MANIFEST-000986

View File

@@ -1,8 +1,7 @@
2025/02/09-21:03:42.338251 7f46acff96c0 Recovering log #697 2026/01/19-19:47:49.822315 7f14d9ffb6c0 Recovering log #984
2025/02/09-21:03:42.392208 7f46acff96c0 Delete type=3 #695 2026/01/19-19:47:49.833348 7f14d9ffb6c0 Delete type=3 #982
2025/02/09-21:03:42.392309 7f46acff96c0 Delete type=0 #697 2026/01/19-19:47:49.833401 7f14d9ffb6c0 Delete type=0 #984
2025/02/09-21:08:14.130070 7f46abbff6c0 Level-0 table #702: started 2026/01/19-20:19:02.619154 7f1243fff6c0 Level-0 table #989: started
2025/02/09-21:08:14.130095 7f46abbff6c0 Level-0 table #702: 0 bytes OK 2026/01/19-20:19:02.619176 7f1243fff6c0 Level-0 table #989: 0 bytes OK
2025/02/09-21:08:14.167491 7f46abbff6c0 Delete type=0 #700 2026/01/19-20:19:02.626822 7f1243fff6c0 Delete type=0 #987
2025/02/09-21:08:14.241950 7f46abbff6c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end) 2026/01/19-20:19:02.639748 7f1243fff6c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
2025/02/09-21:08:14.241994 7f46abbff6c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,7 @@
2025/02/09-20:59:18.338007 7f46adffb6c0 Recovering log #693 2026/01/18-20:07:48.004635 7f14d9ffb6c0 Recovering log #980
2025/02/09-20:59:18.392711 7f46adffb6c0 Delete type=3 #691 2026/01/18-20:07:48.021334 7f14d9ffb6c0 Delete type=3 #978
2025/02/09-20:59:18.392786 7f46adffb6c0 Delete type=0 #693 2026/01/18-20:07:48.021403 7f14d9ffb6c0 Delete type=0 #980
2025/02/09-21:03:16.130170 7f46abbff6c0 Level-0 table #698: started 2026/01/18-20:13:44.336530 7f1243fff6c0 Level-0 table #985: started
2025/02/09-21:03:16.130198 7f46abbff6c0 Level-0 table #698: 0 bytes OK 2026/01/18-20:13:44.336556 7f1243fff6c0 Level-0 table #985: 0 bytes OK
2025/02/09-21:03:16.139608 7f46abbff6c0 Delete type=0 #696 2026/01/18-20:13:44.372711 7f1243fff6c0 Delete type=0 #983
2025/02/09-21:03:16.160174 7f46abbff6c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end) 2026/01/18-20:13:44.502487 7f1243fff6c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
2025/02/09-21:03:16.160232 7f46abbff6c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/equipment/000976.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000702 MANIFEST-000989

View File

@@ -1,8 +1,7 @@
2025/02/09-21:03:41.683955 7f46ac7f86c0 Recovering log #700 2026/01/19-19:47:49.675978 7f14d8ff96c0 Recovering log #987
2025/02/09-21:03:41.743789 7f46ac7f86c0 Delete type=3 #698 2026/01/19-19:47:49.685972 7f14d8ff96c0 Delete type=3 #985
2025/02/09-21:03:41.743857 7f46ac7f86c0 Delete type=0 #700 2026/01/19-19:47:49.686034 7f14d8ff96c0 Delete type=0 #987
2025/02/09-21:08:13.711160 7f46abbff6c0 Level-0 table #705: started 2026/01/19-20:19:02.553787 7f1243fff6c0 Level-0 table #992: started
2025/02/09-21:08:13.711224 7f46abbff6c0 Level-0 table #705: 0 bytes OK 2026/01/19-20:19:02.553814 7f1243fff6c0 Level-0 table #992: 0 bytes OK
2025/02/09-21:08:13.742114 7f46abbff6c0 Delete type=0 #703 2026/01/19-20:19:02.559887 7f1243fff6c0 Delete type=0 #990
2025/02/09-21:08:13.781193 7f46abbff6c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end) 2026/01/19-20:19:02.560019 7f1243fff6c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
2025/02/09-21:08:13.781229 7f46abbff6c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,7 @@
2025/02/09-20:59:17.715431 7f46ad7fa6c0 Recovering log #696 2026/01/18-20:07:47.766393 7f14d8ff96c0 Recovering log #983
2025/02/09-20:59:17.767662 7f46ad7fa6c0 Delete type=3 #694 2026/01/18-20:07:47.781538 7f14d8ff96c0 Delete type=3 #981
2025/02/09-20:59:17.767735 7f46ad7fa6c0 Delete type=0 #696 2026/01/18-20:07:47.781589 7f14d8ff96c0 Delete type=0 #983
2025/02/09-21:03:16.015027 7f46abbff6c0 Level-0 table #701: started 2026/01/18-20:13:43.983716 7f1243fff6c0 Level-0 table #988: started
2025/02/09-21:03:16.015056 7f46abbff6c0 Level-0 table #701: 0 bytes OK 2026/01/18-20:13:43.983740 7f1243fff6c0 Level-0 table #988: 0 bytes OK
2025/02/09-21:03:16.025413 7f46abbff6c0 Delete type=0 #699 2026/01/18-20:13:44.023789 7f1243fff6c0 Delete type=0 #986
2025/02/09-21:03:16.035188 7f46abbff6c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end) 2026/01/18-20:13:44.053229 7f1243fff6c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
2025/02/09-21:03:16.035228 7f46abbff6c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000701 MANIFEST-000988

View File

@@ -1,8 +1,7 @@
2025/02/09-21:03:42.106263 7f46acff96c0 Recovering log #699 2026/01/19-19:47:49.769389 7f14d8ff96c0 Recovering log #986
2025/02/09-21:03:42.160121 7f46acff96c0 Delete type=3 #697 2026/01/19-19:47:49.779377 7f14d8ff96c0 Delete type=3 #984
2025/02/09-21:03:42.160171 7f46acff96c0 Delete type=0 #699 2026/01/19-19:47:49.779429 7f14d8ff96c0 Delete type=0 #986
2025/02/09-21:08:13.974673 7f46abbff6c0 Level-0 table #704: started 2026/01/19-20:19:02.593611 7f1243fff6c0 Level-0 table #991: started
2025/02/09-21:08:13.974704 7f46abbff6c0 Level-0 table #704: 0 bytes OK 2026/01/19-20:19:02.593633 7f1243fff6c0 Level-0 table #991: 0 bytes OK
2025/02/09-21:08:14.011085 7f46abbff6c0 Delete type=0 #702 2026/01/19-20:19:02.599673 7f1243fff6c0 Delete type=0 #989
2025/02/09-21:08:14.087725 7f46abbff6c0 Manual compaction at level-0 from '!items!AoT2c0af4lY6aBsx' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end) 2026/01/19-20:19:02.612871 7f1243fff6c0 Manual compaction at level-0 from '!items!AoT2c0af4lY6aBsx' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)
2025/02/09-21:08:14.087770 7f46abbff6c0 Manual compaction at level-1 from '!items!AoT2c0af4lY6aBsx' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,7 @@
2025/02/09-20:59:18.115747 7f46adffb6c0 Recovering log #695 2026/01/18-20:07:47.909338 7f14d9ffb6c0 Recovering log #982
2025/02/09-20:59:18.168485 7f46adffb6c0 Delete type=3 #693 2026/01/18-20:07:47.941648 7f14d9ffb6c0 Delete type=3 #980
2025/02/09-20:59:18.168544 7f46adffb6c0 Delete type=0 #695 2026/01/18-20:07:47.941699 7f14d9ffb6c0 Delete type=0 #982
2025/02/09-21:03:16.085893 7f46abbff6c0 Level-0 table #700: started 2026/01/18-20:13:44.233085 7f1243fff6c0 Level-0 table #987: started
2025/02/09-21:03:16.085921 7f46abbff6c0 Level-0 table #700: 0 bytes OK 2026/01/18-20:13:44.233108 7f1243fff6c0 Level-0 table #987: 0 bytes OK
2025/02/09-21:03:16.095589 7f46abbff6c0 Delete type=0 #698 2026/01/18-20:13:44.259693 7f1243fff6c0 Delete type=0 #985
2025/02/09-21:03:16.117608 7f46abbff6c0 Manual compaction at level-0 from '!items!AoT2c0af4lY6aBsx' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end) 2026/01/18-20:13:44.336426 7f1243fff6c0 Manual compaction at level-0 from '!items!AoT2c0af4lY6aBsx' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)
2025/02/09-21:03:16.117655 7f46abbff6c0 Manual compaction at level-1 from '!items!AoT2c0af4lY6aBsx' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000184 MANIFEST-000471

View File

@@ -1,8 +1,7 @@
2025/02/09-21:03:42.162054 7f46ac7f86c0 Recovering log #182 2026/01/19-19:47:49.781873 7f14d9ffb6c0 Recovering log #469
2025/02/09-21:03:42.221124 7f46ac7f86c0 Delete type=3 #180 2026/01/19-19:47:49.791906 7f14d9ffb6c0 Delete type=3 #467
2025/02/09-21:03:42.221183 7f46ac7f86c0 Delete type=0 #182 2026/01/19-19:47:49.791963 7f14d9ffb6c0 Delete type=0 #469
2025/02/09-21:08:14.048164 7f46abbff6c0 Level-0 table #187: started 2026/01/19-20:19:02.599791 7f1243fff6c0 Level-0 table #474: started
2025/02/09-21:08:14.048222 7f46abbff6c0 Level-0 table #187: 0 bytes OK 2026/01/19-20:19:02.599817 7f1243fff6c0 Level-0 table #474: 0 bytes OK
2025/02/09-21:08:14.087569 7f46abbff6c0 Delete type=0 #185 2026/01/19-20:19:02.606216 7f1243fff6c0 Delete type=0 #472
2025/02/09-21:08:14.087751 7f46abbff6c0 Manual compaction at level-0 from '!items!CLRp0k5qV8mD03pW' @ 72057594037927935 : 1 .. '!items!wYEpnhbyYaMkaNdL' @ 0 : 0; will stop at (end) 2026/01/19-20:19:02.612886 7f1243fff6c0 Manual compaction at level-0 from '!items!CLRp0k5qV8mD03pW' @ 72057594037927935 : 1 .. '!items!wYEpnhbyYaMkaNdL' @ 0 : 0; will stop at (end)
2025/02/09-21:08:14.087779 7f46abbff6c0 Manual compaction at level-1 from '!items!CLRp0k5qV8mD03pW' @ 72057594037927935 : 1 .. '!items!wYEpnhbyYaMkaNdL' @ 0 : 0; will stop at (end)

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