Compare commits

...

22 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
189 changed files with 1107 additions and 671 deletions

View File

@@ -8,47 +8,47 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- run: echo "💡 The ${{ gitea.repository }} repository will cloned to the runner." - run: echo "💡 The ${{ gitea.repository }} repository will cloned to the runner."
#- 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
id: get_version id: get_version
uses: battila7/get-version-action@v2 uses: battila7/get-version-action@v2
# Substitute the Manifest and Download URLs in the module.json # Substitute the Manifest and Download URLs in the module.json
- name: Substitute Manifest and Download Links For Versioned Ones - name: Substitute Manifest and Download Links For Versioned Ones
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
manifest: https://www.uberwald.me/gitea/public/bol/releases/latest/system.json manifest: https://www.uberwald.me/gitea/public/bol/releases/latest/system.json
download: https://www.uberwald.me/gitea/public/bol/releases/download/${{github.event.release.tag_name}}/bol.zip download: https://www.uberwald.me/gitea/public/bol/releases/download/${{github.event.release.tag_name}}/bol.zip
# Create a zip file with all files required by the module to add to the release # Create a zip file with all files required by the module to add to the release
- run: | - run: |
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
uses: https://gitea.com/actions/release-action@main uses: https://gitea.com/actions/release-action@main
with: with:
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
@@ -39,20 +47,19 @@ Changes :
# v11.0.8 # v11.0.8
- Correction sur les malus de bouclier (blocage) - Correction sur les malus de bouclier (blocage)
- Corrrection sur le malus d'init des boucliers qui était mal affiché dans la fiche d'item - Corrrection sur le malus d'init des boucliers qui était mal affiché dans la fiche d'item
# v10.4.0 # v10.4.0
- Ajout de la gestion d'effets - Ajout de la gestion d'effets
- Aide intégré - Aide intégré
- Intégration du PDF de la bougette - Intégration du PDF de la bougette
# v10.3.3 # v10.3.3
- Nouvelles clés de traduction - Nouvelles clés de traduction
- Lorsqu'une arme a un dé bonus, prise en compte plus claire du dé bonus et affichage de l'information dans la fenêtre de jet - Lorsqu'une arme a un dé bonus, prise en compte plus claire du dé bonus et affichage de l'information dans la fenêtre de jet
- 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

@@ -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",

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",

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",
@@ -546,15 +547,21 @@
"BOL.chat.bolRulebookMessage": "Don't miss the full Rulebook module (including Sagas) available at : https://www.ludospherik-editions.com/en_gb/ !", "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)",
@@ -579,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",

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",
@@ -573,17 +574,25 @@
"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()
@@ -86,14 +89,14 @@ Hooks.once('init', async function () {
function welcomeMessage() { function welcomeMessage() {
let content = `<div id="welcome-message-bol"><span class="rdd-roll-part"> let content = `<div id="welcome-message-bol"><span class="rdd-roll-part">
<strong>` + game.i18n.localize("BOL.chat.welcome1") + `</strong><p>` + <strong>` + game.i18n.localize("BOL.chat.welcome1") + `</strong><p>` +
game.i18n.localize("BOL.chat.welcome2") + "<p>" + game.i18n.localize("BOL.chat.welcome2") + "</p><p>" +
game.i18n.localize("BOL.chat.welcome3") + "<p>" + game.i18n.localize("BOL.chat.welcome3") + "</p><p>" +
game.i18n.localize("BOL.chat.welcome4") + "</p>" + game.i18n.localize("BOL.chat.welcome4") + "</p><p>" +
game.i18n.localize("BOL.chat.welcome5") + "<br>" + game.i18n.localize("BOL.chat.welcome5") + "</p>" +
game.i18n.localize("BOL.chat.welcome6") game.i18n.localize("BOL.chat.welcome6")
let rulebook = game.modules.find( m => m.id === "bol-rulebook") let rulebook = game.modules.find(m => m.id === "bol-rulebook")
if ( !rulebook ) { if (!rulebook) {
content += "<p>" + game.i18n.localize("BOL.chat.bolRulebookMessage") + "</p>" content += "<p>" + game.i18n.localize("BOL.chat.bolRulebookMessage") + "</p>"
} }
ChatMessage.create({ ChatMessage.create({
@@ -102,18 +105,37 @@ function welcomeMessage() {
content: content content: content
}) })
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")) {
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: `<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 () {
@@ -127,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) {
@@ -174,5 +197,3 @@ Hooks.once('ready', async function () {
} }
}) })

View File

@@ -19,9 +19,9 @@ export class BoLRoll {
static updateApplicableEffects(rollData) { static updateApplicableEffects(rollData) {
let appEffects = [] let appEffects = []
for (let effect of rollData.bolEffects) { for (let effect of rollData.bolEffects) {
if ( (effect.system.properties.identifier == "always") || if ((effect.system.properties.identifier == "always") ||
(effect.system.properties.identifier.includes(rollData.attribute.key)) || (effect.system.properties.identifier.includes(rollData.attribute.key)) ||
(rollData.aptitude && effect.system.properties.identifier.includes(rollData.aptitude.key)) ){ (rollData.aptitude && effect.system.properties.identifier.includes(rollData.aptitude.key))) {
appEffects.push(effect) appEffects.push(effect)
} }
} }
@@ -76,7 +76,7 @@ export class BoLRoll {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static attributeCheck(actor, key="vigor", event=undefined, combatData=undefined) { static attributeCheck(actor, key = "vigor", event = undefined, combatData = undefined) {
let attribute = eval(`actor.system.attributes.${key}`) let attribute = eval(`actor.system.attributes.${key}`)
@@ -89,7 +89,7 @@ export class BoLRoll {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static aptitudeCheck(actor, key="init", event=undefined, combatData=undefined) { static aptitudeCheck(actor, key = "init", event = undefined, combatData = undefined) {
let aptitude = eval(`actor.system.aptitudes.${key}`) let aptitude = eval(`actor.system.aptitudes.${key}`)
let attrKey = this.getDefaultAttribute(key) let attrKey = this.getDefaultAttribute(key)
@@ -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,
@@ -634,7 +640,7 @@ export class BoLDefaultRoll {
const diceTotal = activeDice.map(r => r.result).reduce((a, b) => a + b) const diceTotal = activeDice.map(r => r.result).reduce((a, b) => a + b)
this.rollData.roll = r this.rollData.roll = r
this.rollData.isFumble = (diceTotal <= diceData.criticalFailureValue) this.rollData.isFumble = (diceTotal <= diceData.criticalFailureValue)
if ( this.rollData.isFumble ) { if (this.rollData.isFumble) {
this.rollData.isSuccess = false this.rollData.isSuccess = false
this.rollData.isCritical = false this.rollData.isCritical = false
this.rollData.isRealCritical = false this.rollData.isRealCritical = false
@@ -642,7 +648,7 @@ export class BoLDefaultRoll {
this.rollData.isFailure = true this.rollData.isFailure = true
} else { } else {
this.rollData.isCritical = (diceTotal >= diceData.criticalSuccessValue) this.rollData.isCritical = (diceTotal >= diceData.criticalSuccessValue)
if ( this.rollData.isCritical) { if (this.rollData.isCritical) {
this.rollData.isSuccess = true this.rollData.isSuccess = true
} else { } else {
this.rollData.isSuccess = (r.total >= diceData.successValue) this.rollData.isSuccess = (r.total >= diceData.successValue)
@@ -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)
@@ -427,7 +429,7 @@ export class BoLUtility {
html.on("click", '.damage-handling', event => { html.on("click", '.damage-handling', event => {
event.preventDefault() event.preventDefault()
let attr = event.currentTarget.attributes['data-attack-id'] let attr = event.currentTarget.attributes['data-attack-id']
if ( !attr) { if (!attr) {
ui.notifications.warn("Impossible de trouver l'attaque correspondante, erreur de suivi de combat.") ui.notifications.warn("Impossible de trouver l'attaque correspondante, erreur de suivi de combat.")
return return
} }
@@ -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.rollArmor = new Roll(armorFormula) rollData.armorProtect = 0
await rollData.rollArmor.roll() armorFormula = String(armorFormula) || "0"
let msg = await rollData.rollArmor.toMessage({ flavor: "BOL.chat.armorRoll : " + armorFormula }); if (armorFormula && armorFormula != "0" ) {
if ( game.dice3d) { // wait animation end when DsN is there rollData.rollArmor = new Roll(armorFormula)
await game.dice3d.waitFor3DAnimationByMessageID(msg.id); await rollData.rollArmor.roll()
let msg = await rollData.rollArmor.toMessage({ flavor: game.i18n.localize("BOL.chat.armorRoll") + " : " + armorFormula });
if (game.dice3d) { // wait animation end when DsN is there
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
@@ -632,7 +637,7 @@ export class BoLUtility {
attackId: rollData.id, attackId: rollData.id,
attacker: rollData.attacker, attacker: rollData.attacker,
defender: defender, defender: defender,
defenderHeroPoints:defender.getHeroPoints(), defenderHeroPoints: defender.getHeroPoints(),
defenderWeapons: defenderWeapons, defenderWeapons: defenderWeapons,
damageTotal: rollData.damageTotal, damageTotal: rollData.damageTotal,
damagesIgnoresArmor: rollData.damagesIgnoresArmor, damagesIgnoresArmor: rollData.damagesIgnoresArmor,

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-000741 MANIFEST-000990

View File

@@ -1,8 +1,7 @@
2025/02/11-21:52:03.987644 7f92b57fa6c0 Recovering log #739 2026/01/19-19:47:49.729596 7f14da7fc6c0 Recovering log #988
2025/02/11-21:52:03.997651 7f92b57fa6c0 Delete type=3 #737 2026/01/19-19:47:49.739434 7f14da7fc6c0 Delete type=3 #986
2025/02/11-21:52:03.997734 7f92b57fa6c0 Delete type=0 #739 2026/01/19-19:47:49.739512 7f14da7fc6c0 Delete type=0 #988
2025/02/11-21:54:35.598552 7f92b3bff6c0 Level-0 table #744: started 2026/01/19-20:19:02.579851 7f1243fff6c0 Level-0 table #993: started
2025/02/11-21:54:35.598583 7f92b3bff6c0 Level-0 table #744: 0 bytes OK 2026/01/19-20:19:02.579872 7f1243fff6c0 Level-0 table #993: 0 bytes OK
2025/02/11-21:54:35.604608 7f92b3bff6c0 Delete type=0 #742 2026/01/19-20:19:02.585797 7f1243fff6c0 Delete type=0 #991
2025/02/11-21:54:35.611345 7f92b3bff6c0 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/11-21:54:35.611398 7f92b3bff6c0 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/11-21:46:57.957249 7f92b4ff96c0 Recovering log #735 2026/01/18-20:07:47.845406 7f14d8ff96c0 Recovering log #984
2025/02/11-21:46:58.011032 7f92b4ff96c0 Delete type=3 #733 2026/01/18-20:07:47.861224 7f14d8ff96c0 Delete type=3 #982
2025/02/11-21:46:58.011095 7f92b4ff96c0 Delete type=0 #735 2026/01/18-20:07:47.861280 7f14d8ff96c0 Delete type=0 #984
2025/02/11-21:51:51.193085 7f92b3bff6c0 Level-0 table #740: started 2026/01/18-20:13:44.130598 7f1243fff6c0 Level-0 table #989: started
2025/02/11-21:51:51.193106 7f92b3bff6c0 Level-0 table #740: 0 bytes OK 2026/01/18-20:13:44.130625 7f1243fff6c0 Level-0 table #989: 0 bytes OK
2025/02/11-21:51:51.199589 7f92b3bff6c0 Delete type=0 #738 2026/01/18-20:13:44.157241 7f1243fff6c0 Delete type=0 #987
2025/02/11-21:51:51.219732 7f92b3bff6c0 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/11-21:51:51.219765 7f92b3bff6c0 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-000646 MANIFEST-000895

View File

@@ -1,8 +1,7 @@
2025/02/11-21:52:03.961891 7f92b5ffb6c0 Recovering log #644 2026/01/19-19:47:49.702991 7f14d97fa6c0 Recovering log #893
2025/02/11-21:52:03.971934 7f92b5ffb6c0 Delete type=3 #642 2026/01/19-19:47:49.714316 7f14d97fa6c0 Delete type=3 #891
2025/02/11-21:52:03.972018 7f92b5ffb6c0 Delete type=0 #644 2026/01/19-19:47:49.714383 7f14d97fa6c0 Delete type=0 #893
2025/02/11-21:54:35.590985 7f92b3bff6c0 Level-0 table #649: started 2026/01/19-20:19:02.560145 7f1243fff6c0 Level-0 table #898: started
2025/02/11-21:54:35.591011 7f92b3bff6c0 Level-0 table #649: 0 bytes OK 2026/01/19-20:19:02.560173 7f1243fff6c0 Level-0 table #898: 0 bytes OK
2025/02/11-21:54:35.598433 7f92b3bff6c0 Delete type=0 #647 2026/01/19-20:19:02.566093 7f1243fff6c0 Delete type=0 #896
2025/02/11-21:54:35.611337 7f92b3bff6c0 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/11-21:54:35.611373 7f92b3bff6c0 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/11-21:46:57.864537 7f92b57fa6c0 Recovering log #640 2026/01/18-20:07:47.807797 7f14d9ffb6c0 Recovering log #889
2025/02/11-21:46:57.903541 7f92b57fa6c0 Delete type=3 #638 2026/01/18-20:07:47.824331 7f14d9ffb6c0 Delete type=3 #887
2025/02/11-21:46:57.903634 7f92b57fa6c0 Delete type=0 #640 2026/01/18-20:07:47.824381 7f14d9ffb6c0 Delete type=0 #889
2025/02/11-21:51:51.199721 7f92b3bff6c0 Level-0 table #645: started 2026/01/18-20:13:44.157350 7f1243fff6c0 Level-0 table #894: started
2025/02/11-21:51:51.199750 7f92b3bff6c0 Level-0 table #645: 0 bytes OK 2026/01/18-20:13:44.157372 7f1243fff6c0 Level-0 table #894: 0 bytes OK
2025/02/11-21:51:51.205891 7f92b3bff6c0 Delete type=0 #643 2026/01/18-20:13:44.192480 7f1243fff6c0 Delete type=0 #892
2025/02/11-21:51:51.219744 7f92b3bff6c0 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/11-21:51:51.219794 7f92b3bff6c0 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-000739 MANIFEST-000989

View File

@@ -1,8 +1,7 @@
2025/02/11-21:52:03.851261 7f92b5ffb6c0 Recovering log #737 2026/01/19-19:47:49.594444 7f14d8ff96c0 Recovering log #987
2025/02/11-21:52:03.861605 7f92b5ffb6c0 Delete type=3 #735 2026/01/19-19:47:49.605020 7f14d8ff96c0 Delete type=3 #985
2025/02/11-21:52:03.861680 7f92b5ffb6c0 Delete type=0 #737 2026/01/19-19:47:49.605095 7f14d8ff96c0 Delete type=0 #987
2025/02/11-21:54:35.551224 7f92b3bff6c0 Level-0 table #742: started 2026/01/19-20:19:02.521702 7f1243fff6c0 Level-0 table #992: started
2025/02/11-21:54:35.551250 7f92b3bff6c0 Level-0 table #742: 0 bytes OK 2026/01/19-20:19:02.521733 7f1243fff6c0 Level-0 table #992: 0 bytes OK
2025/02/11-21:54:35.557302 7f92b3bff6c0 Delete type=0 #740 2026/01/19-20:19:02.528339 7f1243fff6c0 Delete type=0 #990
2025/02/11-21:54:35.557440 7f92b3bff6c0 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/11-21:54:35.557467 7f92b3bff6c0 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/11-21:46:57.609960 7f92b5ffb6c0 Recovering log #733 2026/01/18-20:07:47.640110 7f14da7fc6c0 Recovering log #983
2025/02/11-21:46:57.630801 7f92b5ffb6c0 Delete type=3 #731 2026/01/18-20:07:47.659075 7f14da7fc6c0 Delete type=3 #981
2025/02/11-21:46:57.630870 7f92b5ffb6c0 Delete type=0 #733 2026/01/18-20:07:47.659147 7f14da7fc6c0 Delete type=0 #983
2025/02/11-21:51:51.157989 7f92b3bff6c0 Level-0 table #738: started 2026/01/18-20:13:43.881522 7f1243fff6c0 Level-0 table #988: started
2025/02/11-21:51:51.158009 7f92b3bff6c0 Level-0 table #738: 0 bytes OK 2026/01/18-20:13:43.881548 7f1243fff6c0 Level-0 table #988: 0 bytes OK
2025/02/11-21:51:51.165246 7f92b3bff6c0 Delete type=0 #736 2026/01/18-20:13:43.921371 7f1243fff6c0 Delete type=0 #986
2025/02/11-21:51:51.165430 7f92b3bff6c0 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/11-21:51:51.165460 7f92b3bff6c0 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-000739 MANIFEST-000988

View File

@@ -1,8 +1,7 @@
2025/02/11-21:52:03.864307 7f92b4ff96c0 Recovering log #737 2026/01/19-19:47:49.609310 7f14da7fc6c0 Recovering log #986
2025/02/11-21:52:03.874891 7f92b4ff96c0 Delete type=3 #735 2026/01/19-19:47:49.619302 7f14da7fc6c0 Delete type=3 #984
2025/02/11-21:52:03.874942 7f92b4ff96c0 Delete type=0 #737 2026/01/19-19:47:49.619373 7f14da7fc6c0 Delete type=0 #986
2025/02/11-21:54:35.544201 7f92b3bff6c0 Level-0 table #742: started 2026/01/19-20:19:02.515027 7f1243fff6c0 Level-0 table #991: started
2025/02/11-21:54:35.544228 7f92b3bff6c0 Level-0 table #742: 0 bytes OK 2026/01/19-20:19:02.515048 7f1243fff6c0 Level-0 table #991: 0 bytes OK
2025/02/11-21:54:35.551120 7f92b3bff6c0 Delete type=0 #740 2026/01/19-20:19:02.521555 7f1243fff6c0 Delete type=0 #989
2025/02/11-21:54:35.557431 7f92b3bff6c0 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/11-21:54:35.557476 7f92b3bff6c0 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/11-21:46:57.634030 7f92b4ff96c0 Recovering log #733 2026/01/18-20:07:47.664234 7f14d8ff96c0 Recovering log #982
2025/02/11-21:46:57.667250 7f92b4ff96c0 Delete type=3 #731 2026/01/18-20:07:47.679427 7f14d8ff96c0 Delete type=3 #980
2025/02/11-21:46:57.667306 7f92b4ff96c0 Delete type=0 #733 2026/01/18-20:07:47.679484 7f14d8ff96c0 Delete type=0 #982
2025/02/11-21:51:51.135962 7f92b3bff6c0 Level-0 table #738: started 2026/01/18-20:13:43.851971 7f1243fff6c0 Level-0 table #987: started
2025/02/11-21:51:51.136026 7f92b3bff6c0 Level-0 table #738: 0 bytes OK 2026/01/18-20:13:43.851994 7f1243fff6c0 Level-0 table #987: 0 bytes OK
2025/02/11-21:51:51.143488 7f92b3bff6c0 Delete type=0 #736 2026/01/18-20:13:43.881382 7f1243fff6c0 Delete type=0 #985
2025/02/11-21:51:51.165385 7f92b3bff6c0 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/11-21:51:51.165441 7f92b3bff6c0 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-000739 MANIFEST-000988

View File

@@ -1,8 +1,7 @@
2025/02/11-21:52:03.893611 7f92b47f86c0 Recovering log #737 2026/01/19-19:47:49.635172 7f14d8ff96c0 Recovering log #986
2025/02/11-21:52:03.903497 7f92b47f86c0 Delete type=3 #735 2026/01/19-19:47:49.644889 7f14d8ff96c0 Delete type=3 #984
2025/02/11-21:52:03.903562 7f92b47f86c0 Delete type=0 #737 2026/01/19-19:47:49.644941 7f14d8ff96c0 Delete type=0 #986
2025/02/11-21:54:35.537763 7f92b3bff6c0 Level-0 table #742: started 2026/01/19-20:19:02.508864 7f1243fff6c0 Level-0 table #991: started
2025/02/11-21:54:35.537788 7f92b3bff6c0 Level-0 table #742: 0 bytes OK 2026/01/19-20:19:02.508913 7f1243fff6c0 Level-0 table #991: 0 bytes OK
2025/02/11-21:54:35.544087 7f92b3bff6c0 Delete type=0 #740 2026/01/19-20:19:02.514913 7f1243fff6c0 Delete type=0 #989
2025/02/11-21:54:35.557421 7f92b3bff6c0 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/11-21:54:35.557458 7f92b3bff6c0 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/11-21:46:57.718347 7f92b5ffb6c0 Recovering log #733 2026/01/18-20:07:47.704039 7f14d8ff96c0 Recovering log #982
2025/02/11-21:46:57.741441 7f92b5ffb6c0 Delete type=3 #731 2026/01/18-20:07:47.721242 7f14d8ff96c0 Delete type=3 #980
2025/02/11-21:46:57.741502 7f92b5ffb6c0 Delete type=0 #733 2026/01/18-20:07:47.721902 7f14d8ff96c0 Delete type=0 #982
2025/02/11-21:51:51.143598 7f92b3bff6c0 Level-0 table #738: started 2026/01/18-20:13:43.777269 7f1243fff6c0 Level-0 table #987: started
2025/02/11-21:51:51.143622 7f92b3bff6c0 Level-0 table #738: 0 bytes OK 2026/01/18-20:13:43.777312 7f1243fff6c0 Level-0 table #987: 0 bytes OK
2025/02/11-21:51:51.150418 7f92b3bff6c0 Delete type=0 #736 2026/01/18-20:13:43.819988 7f1243fff6c0 Delete type=0 #985
2025/02/11-21:51:51.165405 7f92b3bff6c0 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/11-21:51:51.165450 7f92b3bff6c0 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-000737 MANIFEST-000986

View File

@@ -1,8 +1,7 @@
2025/02/11-21:52:04.078087 7f92b4ff96c0 Recovering log #735 2026/01/19-19:47:49.822315 7f14d9ffb6c0 Recovering log #984
2025/02/11-21:52:04.088545 7f92b4ff96c0 Delete type=3 #733 2026/01/19-19:47:49.833348 7f14d9ffb6c0 Delete type=3 #982
2025/02/11-21:52:04.088597 7f92b4ff96c0 Delete type=0 #735 2026/01/19-19:47:49.833401 7f14d9ffb6c0 Delete type=0 #984
2025/02/11-21:54:35.646391 7f92b3bff6c0 Level-0 table #740: started 2026/01/19-20:19:02.619154 7f1243fff6c0 Level-0 table #989: started
2025/02/11-21:54:35.646414 7f92b3bff6c0 Level-0 table #740: 0 bytes OK 2026/01/19-20:19:02.619176 7f1243fff6c0 Level-0 table #989: 0 bytes OK
2025/02/11-21:54:35.652511 7f92b3bff6c0 Delete type=0 #738 2026/01/19-20:19:02.626822 7f1243fff6c0 Delete type=0 #987
2025/02/11-21:54:35.665492 7f92b3bff6c0 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/11-21:54:35.665529 7f92b3bff6c0 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/11-21:46:58.388995 7f92b47f86c0 Recovering log #731 2026/01/18-20:07:48.004635 7f14d9ffb6c0 Recovering log #980
2025/02/11-21:46:58.441520 7f92b47f86c0 Delete type=3 #729 2026/01/18-20:07:48.021334 7f14d9ffb6c0 Delete type=3 #978
2025/02/11-21:46:58.441593 7f92b47f86c0 Delete type=0 #731 2026/01/18-20:07:48.021403 7f14d9ffb6c0 Delete type=0 #980
2025/02/11-21:51:51.256745 7f92b3bff6c0 Level-0 table #736: started 2026/01/18-20:13:44.336530 7f1243fff6c0 Level-0 table #985: started
2025/02/11-21:51:51.256779 7f92b3bff6c0 Level-0 table #736: 0 bytes OK 2026/01/18-20:13:44.336556 7f1243fff6c0 Level-0 table #985: 0 bytes OK
2025/02/11-21:51:51.263802 7f92b3bff6c0 Delete type=0 #734 2026/01/18-20:13:44.372711 7f1243fff6c0 Delete type=0 #983
2025/02/11-21:51:51.277287 7f92b3bff6c0 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/11-21:51:51.277328 7f92b3bff6c0 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-000740 MANIFEST-000989

View File

@@ -1,8 +1,7 @@
2025/02/11-21:52:03.931941 7f92b57fa6c0 Recovering log #738 2026/01/19-19:47:49.675978 7f14d8ff96c0 Recovering log #987
2025/02/11-21:52:03.943266 7f92b57fa6c0 Delete type=3 #736 2026/01/19-19:47:49.685972 7f14d8ff96c0 Delete type=3 #985
2025/02/11-21:52:03.943400 7f92b57fa6c0 Delete type=0 #738 2026/01/19-19:47:49.686034 7f14d8ff96c0 Delete type=0 #987
2025/02/11-21:54:35.557565 7f92b3bff6c0 Level-0 table #743: started 2026/01/19-20:19:02.553787 7f1243fff6c0 Level-0 table #992: started
2025/02/11-21:54:35.557592 7f92b3bff6c0 Level-0 table #743: 0 bytes OK 2026/01/19-20:19:02.553814 7f1243fff6c0 Level-0 table #992: 0 bytes OK
2025/02/11-21:54:35.564441 7f92b3bff6c0 Delete type=0 #741 2026/01/19-20:19:02.559887 7f1243fff6c0 Delete type=0 #990
2025/02/11-21:54:35.584708 7f92b3bff6c0 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/11-21:54:35.584749 7f92b3bff6c0 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/11-21:46:57.792284 7f92b4ff96c0 Recovering log #734 2026/01/18-20:07:47.766393 7f14d8ff96c0 Recovering log #983
2025/02/11-21:46:57.814359 7f92b4ff96c0 Delete type=3 #732 2026/01/18-20:07:47.781538 7f14d8ff96c0 Delete type=3 #981
2025/02/11-21:46:57.814454 7f92b4ff96c0 Delete type=0 #734 2026/01/18-20:07:47.781589 7f14d8ff96c0 Delete type=0 #983
2025/02/11-21:51:51.173508 7f92b3bff6c0 Level-0 table #739: started 2026/01/18-20:13:43.983716 7f1243fff6c0 Level-0 table #988: started
2025/02/11-21:51:51.173542 7f92b3bff6c0 Level-0 table #739: 0 bytes OK 2026/01/18-20:13:43.983740 7f1243fff6c0 Level-0 table #988: 0 bytes OK
2025/02/11-21:51:51.180000 7f92b3bff6c0 Delete type=0 #737 2026/01/18-20:13:44.023789 7f1243fff6c0 Delete type=0 #986
2025/02/11-21:51:51.192976 7f92b3bff6c0 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/11-21:51:51.193012 7f92b3bff6c0 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-000739 MANIFEST-000988

View File

@@ -1,8 +1,7 @@
2025/02/11-21:52:04.027483 7f92b4ff96c0 Recovering log #737 2026/01/19-19:47:49.769389 7f14d8ff96c0 Recovering log #986
2025/02/11-21:52:04.037860 7f92b4ff96c0 Delete type=3 #735 2026/01/19-19:47:49.779377 7f14d8ff96c0 Delete type=3 #984
2025/02/11-21:52:04.037909 7f92b4ff96c0 Delete type=0 #737 2026/01/19-19:47:49.779429 7f14d8ff96c0 Delete type=0 #986
2025/02/11-21:54:35.611457 7f92b3bff6c0 Level-0 table #742: started 2026/01/19-20:19:02.593611 7f1243fff6c0 Level-0 table #991: started
2025/02/11-21:54:35.611509 7f92b3bff6c0 Level-0 table #742: 0 bytes OK 2026/01/19-20:19:02.593633 7f1243fff6c0 Level-0 table #991: 0 bytes OK
2025/02/11-21:54:35.618478 7f92b3bff6c0 Delete type=0 #740 2026/01/19-20:19:02.599673 7f1243fff6c0 Delete type=0 #989
2025/02/11-21:54:35.639412 7f92b3bff6c0 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/11-21:54:35.639448 7f92b3bff6c0 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/11-21:46:58.154600 7f92b47f86c0 Recovering log #733 2026/01/18-20:07:47.909338 7f14d9ffb6c0 Recovering log #982
2025/02/11-21:46:58.214601 7f92b47f86c0 Delete type=3 #731 2026/01/18-20:07:47.941648 7f14d9ffb6c0 Delete type=3 #980
2025/02/11-21:46:58.214661 7f92b47f86c0 Delete type=0 #733 2026/01/18-20:07:47.941699 7f14d9ffb6c0 Delete type=0 #982
2025/02/11-21:51:51.226172 7f92b3bff6c0 Level-0 table #738: started 2026/01/18-20:13:44.233085 7f1243fff6c0 Level-0 table #987: started
2025/02/11-21:51:51.226202 7f92b3bff6c0 Level-0 table #738: 0 bytes OK 2026/01/18-20:13:44.233108 7f1243fff6c0 Level-0 table #987: 0 bytes OK
2025/02/11-21:51:51.235914 7f92b3bff6c0 Delete type=0 #736 2026/01/18-20:13:44.259693 7f1243fff6c0 Delete type=0 #985
2025/02/11-21:51:51.250107 7f92b3bff6c0 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/11-21:51:51.250149 7f92b3bff6c0 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-000222 MANIFEST-000471

View File

@@ -1,8 +1,7 @@
2025/02/11-21:52:04.039947 7f92b57fa6c0 Recovering log #220 2026/01/19-19:47:49.781873 7f14d9ffb6c0 Recovering log #469
2025/02/11-21:52:04.049995 7f92b57fa6c0 Delete type=3 #218 2026/01/19-19:47:49.791906 7f14d9ffb6c0 Delete type=3 #467
2025/02/11-21:52:04.050056 7f92b57fa6c0 Delete type=0 #220 2026/01/19-19:47:49.791963 7f14d9ffb6c0 Delete type=0 #469
2025/02/11-21:54:35.633150 7f92b3bff6c0 Level-0 table #225: started 2026/01/19-20:19:02.599791 7f1243fff6c0 Level-0 table #474: started
2025/02/11-21:54:35.633173 7f92b3bff6c0 Level-0 table #225: 0 bytes OK 2026/01/19-20:19:02.599817 7f1243fff6c0 Level-0 table #474: 0 bytes OK
2025/02/11-21:54:35.639265 7f92b3bff6c0 Delete type=0 #223 2026/01/19-20:19:02.606216 7f1243fff6c0 Delete type=0 #472
2025/02/11-21:54:35.639442 7f92b3bff6c0 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/11-21:54:35.639467 7f92b3bff6c0 Manual compaction at level-1 from '!items!CLRp0k5qV8mD03pW' @ 72057594037927935 : 1 .. '!items!wYEpnhbyYaMkaNdL' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,7 @@
2025/02/11-21:46:58.217769 7f92b4ff96c0 Recovering log #216 2026/01/18-20:07:47.944158 7f14da7fc6c0 Recovering log #465
2025/02/11-21:46:58.272970 7f92b4ff96c0 Delete type=3 #214 2026/01/18-20:07:47.960589 7f14da7fc6c0 Delete type=3 #463
2025/02/11-21:46:58.273041 7f92b4ff96c0 Delete type=0 #216 2026/01/18-20:07:47.960660 7f14da7fc6c0 Delete type=0 #465
2025/02/11-21:51:51.236034 7f92b3bff6c0 Level-0 table #221: started 2026/01/18-20:13:44.259805 7f1243fff6c0 Level-0 table #470: started
2025/02/11-21:51:51.236081 7f92b3bff6c0 Level-0 table #221: 0 bytes OK 2026/01/18-20:13:44.259831 7f1243fff6c0 Level-0 table #470: 0 bytes OK
2025/02/11-21:51:51.242218 7f92b3bff6c0 Delete type=0 #219 2026/01/18-20:13:44.295095 7f1243fff6c0 Delete type=0 #468
2025/02/11-21:51:51.250118 7f92b3bff6c0 Manual compaction at level-0 from '!items!CLRp0k5qV8mD03pW' @ 72057594037927935 : 1 .. '!items!wYEpnhbyYaMkaNdL' @ 0 : 0; will stop at (end) 2026/01/18-20:13:44.336439 7f1243fff6c0 Manual compaction at level-0 from '!items!CLRp0k5qV8mD03pW' @ 72057594037927935 : 1 .. '!items!wYEpnhbyYaMkaNdL' @ 0 : 0; will stop at (end)
2025/02/11-21:51:51.250158 7f92b3bff6c0 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