diff --git a/images/icons/xpplus1.webp b/images/icons/xpplus1.webp new file mode 100644 index 0000000..8eef03e Binary files /dev/null and b/images/icons/xpplus1.webp differ diff --git a/modules/actors/tedeum-actor-sheet.js b/modules/actors/tedeum-actor-sheet.js index ef2623f..359c3fd 100644 --- a/modules/actors/tedeum-actor-sheet.js +++ b/modules/actors/tedeum-actor-sheet.js @@ -15,7 +15,7 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet { classes: ["fvtt-te-deum", "sheet", "actor"], template: "systems/fvtt-te-deum/templates/actors/actor-sheet.hbs", width: 860, - height:680, + height: 680, tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "skills" }], dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }], editScore: true @@ -67,7 +67,6 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet { } this.formData = formData; - console.log("PC : ", formData, this.object); return formData; } @@ -80,7 +79,7 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet { // Everything below here is only needed if the sheet is editable if (!this.options.editable) return; - html.bind("keydown", function(e) { // Ignore Enter in actores sheet + html.bind("keydown", function (e) { // Ignore Enter in actores sheet if (e.keyCode === 13) return false; }); @@ -88,7 +87,7 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet { html.find('.item-edit').click(ev => { const li = $(ev.currentTarget).parents(".item-id") let itemId = li.data("item-id") - const item = this.actor.items.get( itemId ); + const item = this.actor.items.get(itemId); item.sheet.render(true); }); // Delete Inventory Item @@ -100,16 +99,20 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet { let dataType = $(ev.currentTarget).data("type") this.actor.createEmbeddedDocuments('Item', [{ name: "Nouveau " + dataType, type: dataType }], { renderSheet: true }) }) + html.find('.blessure-add').click(ev => { + let dataType = $(ev.currentTarget).data("type") + this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvelle " + dataType, type: dataType, system: { typeBlessure: "estafilade", localisation: "corps", value: 0, appliquee: true, description: "" } }], { renderSheet: true }) + }) html.find('.competence-add').click(ev => { let dataType = $(ev.currentTarget).data("type") let caracKey = $(ev.currentTarget).data("carac-key") - this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvelle " + dataType, type: dataType, system: {caracteristique: caracKey} }], { renderSheet: true }) + this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvelle " + dataType, type: dataType, system: { caracteristique: caracKey } }], { renderSheet: true }) }) html.find('.subactor-edit').click(ev => { const li = $(ev.currentTarget).parents(".item"); let actorId = li.data("actor-id"); - let actor = game.actors.get( actorId ); + let actor = game.actors.get(actorId); actor.sheet.render(true); }); @@ -120,12 +123,12 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet { }); html.find('.quantity-minus').click(event => { const li = $(event.currentTarget).parents(".item"); - this.actor.incDecQuantity( li.data("item-id"), -1 ); - } ); + this.actor.incDecQuantity(li.data("item-id"), -1); + }); html.find('.quantity-plus').click(event => { const li = $(event.currentTarget).parents(".item"); - this.actor.incDecQuantity( li.data("item-id"), +1 ); - } ); + this.actor.incDecQuantity(li.data("item-id"), +1); + }); html.find('.roll-competence').click((event) => { let compId = $(event.currentTarget).data("comp-id") @@ -147,13 +150,13 @@ export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet { }); html.find('.item-equip').click(ev => { const li = $(ev.currentTarget).parents(".item"); - this.actor.equipItem( li.data("item-id") ); + this.actor.equipItem(li.data("item-id")); this.render(true); }); html.find('.update-field').change(ev => { const fieldName = $(ev.currentTarget).data("field-name"); let value = Number(ev.currentTarget.value); - this.actor.update( { [`${fieldName}`]: value } ); + this.actor.update({ [`${fieldName}`]: value }); }); } diff --git a/modules/actors/tedeum-actor.js b/modules/actors/tedeum-actor.js index f9f7699..240a6ef 100644 --- a/modules/actors/tedeum-actor.js +++ b/modules/actors/tedeum-actor.js @@ -34,7 +34,7 @@ export class TeDeumActor extends Actor { return actor; } - if (data.type == 'pj' || data.type == 'pnj') { + if (data.type == 'pj' || data.type == 'pnj') { const skills = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences") data.items = data.items || [] for (let skill of skills) { @@ -65,6 +65,7 @@ export class TeDeumActor extends Actor { super._preUpdate(changed, options, user); } + /* -------------------------------------------- */ getCompetenceScore(compName) { let competence = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == compName.toLowerCase()) if (competence) { @@ -158,6 +159,24 @@ export class TeDeumActor extends Actor { return game.system.tedeum.config.BONUS_DEGATS[this.system.caracteristiques.puissance.value] } /* -------------------------------------------- */ + getAttaqueBonusDegats(rollData = undefined) { + let base = game.system.tedeum.config.BONUS_DEGATS[this.system.caracteristiques.puissance.value].value + let additionalBonus = 0 + if (rollData) { + // Spécificité armes naturelle avec gantelet + if (rollData?.arme?.system.specificites?.poing?.hasSpec && this.items.find(item => item.type == "armure" && item.name.toLowerCase() == "gantelet" && item.system.equipe)) { + additionalBonus += 1 + rollData.gantelet = true + } + if (rollData.isChargeAPied) { + additionalBonus += this.getCompetenceScore("course") + } else if (rollData.isChargeACheval) { + additionalBonus += this.getCompetenceScore("equitation") + } + } + return base + additionalBonus + } + /* -------------------------------------------- */ getNbArmures() { return game.system.tedeum.config.MAX_ARMURES_LOURDES[this.system.caracteristiques.puissance.value] } @@ -269,41 +288,105 @@ export class TeDeumActor extends Actor { modTotal += blessDef.modifier } // Si le nombre de blessures est supérieur au score d'endurance, alors malus supplémentaire - let endurance = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "endurance") - if (blessures.length > endurance.system.score) { + let enduranceScore = this.getCompetenceScore("endurance") + if (blessures.length > enduranceScore) { modTotal += -1 } return modTotal } + /* -------------------------------------------- */ + async appliquerBlessure(blessureId, locId, comment = "") { + let blessure = game.system.tedeum.config.blessures[blessureId] + if (!blessure) { + ui.notifications.warn("Type de blessure inconnu : " + blessureId) + console.error("Type de blessure inconnu : " + blessureId) + return + } + // Create a new blessure object + let blessureObj = { + name: blessure.label, + type: "blessure", + system: { + typeBlessure: blessureId, + localisation: locId || "maindroite", + value: blessure.value, + appliquee: true, + description: comment, + } + } + this.createEmbeddedDocuments('Item', [blessureObj]); + } + + /* -------------------------------------------- */ + getArmorDegatsModifier(rollData, combat) { + let loc = combat[rollData.loc.id] + // Sans armure + if (loc.armures.length == 0) { + return rollData.arme.system.degatsArmure.sansarmure + } + // Avec armure de cuir + if (loc.armures.find(a => a.system.typeArmure == "cuir")) { + return rollData.arme.system.degatsArmure.cuir + } + // Avec armure de maille + if (loc.armures.find(a => a.system.typeArmure == "maille")) { + return rollData.arme.system.degatsArmure.mailles + } + // Avec armure de plate + if (loc.armures.find(a => a.system.typeArmure == "plate")) { + return rollData.arme.system.degatsArmure.plates + } + return 0 + } + /* -------------------------------------------- */ async appliquerDegats(rollData) { let combat = this.prepareCombat() rollData.defenderName = this.name let touche = combat[rollData.loc.id].touche + let armorDegatModifier = this.getArmorDegatsModifier(rollData, combat) + rollData.degats += armorDegatModifier + rollData.armorDegatModifier = armorDegatModifier + + let blessureId = "indemne" if (rollData.degats > 0 && rollData.degats > touche) { let diff = rollData.degats - touche for (let bId in game.system.tedeum.config.blessures) { let blessure = game.system.tedeum.config.blessures[bId] if (diff >= blessure.degatsMin && diff <= blessure.degatsMax) { - // Create a new blessure object - let blessureObj = { - name: blessure.label, - type: "blessure", - system: { - typeBlessure: bId, - localisation: rollData.loc.id, - appliquee: true, - description: "Blessure infligée par un coup de " + rollData.arme.name + " de " + rollData.alias, - } + if (rollData.isReussiteCritique) { + bId = game.system.tedeum.config.blessuresOrder[blessure.value + 1] } - rollData.blessure = blessureObj - this.createEmbeddedDocuments('Item', [blessureObj]); + blessureId = bId + break } } } + if (rollData.isReussiteCritique && blessureId == "indemne") { // Critical success without degats => lightest blessure + blessureId = "estafilade" + } + console.log("Appliquer dégats", rollData, combat, blessureId) + if (blessureId != "indemne") { + let blessure = game.system.tedeum.config.blessures[blessureId] + // Create a new blessure object + let blessureObj = { + name: blessure.label, + type: "blessure", + system: { + typeBlessure: blessureId, + localisation: rollData.loc.id, + value: blessure.value, + appliquee: true, + description: "Blessure infligée par un coup de " + rollData.arme.name + " de " + rollData.alias, + } + } + rollData.blessure = blessureObj + rollData.touche = touche + this.createEmbeddedDocuments('Item', [blessureObj]); + } // Display the relevant chat message let msg = await TeDeumUtility.createChatWithRollMode(rollData.alias, { - content: await renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-blessure-result.hbs`, rollData) + content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-blessure-result.hbs`, rollData) }) await msg.setFlag("world", "te-deum-rolldata", rollData) } @@ -385,6 +468,7 @@ export class TeDeumActor extends Actor { xp = Math.max(xp + value, 0) await this.update({ [`system.caracteristiques.${key}.experience`]: xp }) this.sheet?.render(true) + ui.notifications.info(`+${value} XP en ${game.system.tedeum.config.caracteristiques[key].label}`) } /* -------------------------------------------- */ @@ -457,7 +541,7 @@ export class TeDeumActor extends Actor { flag = armure.system.superposableCuir } if (item.system.typeArmure == "maille") { - flag = armure.system.superposableMaille + flag = armure.system.superposableMaille } if (item.system.typeArmure == "plate") { flag = armure.system.superposablePlate @@ -533,6 +617,15 @@ export class TeDeumActor extends Actor { /* -------------------------------------------- */ getInitiativeScore() { let initiative = this.items.find(it => it.type == "competence" && it.name.toLowerCase() == "initiative") + initiative = foundry.utils.duplicate(initiative) + // Vérifie les armes avec bonus d'initiative + let armes = this.getArmes() + for (let arme of armes) { + if (arme.system.equipe && arme.system.bonusInitiative != 0) { + ui.notifications.info("L'arme " + arme.name + " vous confère un bonus d'initiative de " + arme.system.bonusInitiative) + initiative.system.score += 1 + } + } if (initiative) { return initiative.system.score } @@ -607,12 +700,12 @@ export class TeDeumActor extends Actor { let weapon = this.items.get(armeId) if (weapon) { let bDegats = 0 - if ( weapon.system.typeArme == "melee" ) { + if (weapon.system.typeArme == "melee") { bDegats = this.getBonusDegats() } let formula = weapon.system.degats + "+" + bDegats.value let degatsRoll = await new Roll(formula).roll() - await TeDeumUtility.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode") ) + await TeDeumUtility.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode")) let rollData = this.getCommonRollData() rollData.mode = "degats" rollData.formula = formula @@ -657,9 +750,14 @@ export class TeDeumActor extends Actor { let competence = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == compName.toLowerCase()) if (competence) { rollData.competence = competence + rollData.compScore = rollData.competence.system.isBase ? this.system.caracteristiques[rollData.competence.system.caracteristique].value : rollData.competence.system.score let c = foundry.utils.duplicate(this.system.caracteristiques[competence.system.caracteristique]) this.updateCarac(c, competence.system.caracteristique) rollData.carac = c + rollData.allongeLabel = game.system.tedeum.config.armeAllonges[weapon.system.allonge].label + rollData.allongeId = "courte" + rollData.allonges = foundry.utils.duplicate(game.system.tedeum.config.allonges[weapon.system.allonge]) + } else { ui.notifications.warn("Impossible de trouver la compétence " + compName) return diff --git a/modules/common/tedeum-config.js b/modules/common/tedeum-config.js index 78c6be8..9ec03b6 100644 --- a/modules/common/tedeum-config.js +++ b/modules/common/tedeum-config.js @@ -4,30 +4,46 @@ export const SYSTEM_ID = "fvtt-te-deum"; export const TEDEUM_CONFIG = { BONUS_DEGATS: [{}, { label: "1d4", value: -2 }, { label: "1d6", value: -1 }, { label: "1d8", value: 0 }, - { label: "1d10", value: 1 }, { label: "1d12", value: 2 }, { label: "1d20", value: 3 }], + { label: "1d10", value: 1 }, { label: "1d12", value: 2 }, { label: "1d20", value: 3 }], MAX_ARMURES_LOURDES: [{}, { value: 1 }, { value: 3 }, { value: 5 }, - { value: 7 }, { value: 9 }, { value: 11 }], + { value: 7 }, { value: 9 }, { value: 11 }], ACTIONS_PAR_TOUR: [{}, { value: 1 }, { value: 2 }, { value: 2 }, - { value: 3 }, { value: 3 }, { value: 4 }], + { value: 3 }, { value: 3 }, { value: 4 }], COMMON_VALUE: [{}, { value: 1 }, { value: 2 }, { value: 3 }, - { value: 4 }, { value: 5 }, { value: 6 }], + { value: 4 }, { value: 5 }, { value: 6 }], COUT_XP: [{}, { value: 10 }, { value: 10 }, { value: 10 }, - { value: 10 }, { value: 30 }, { value: 50 }], + { value: 10 }, { value: 30 }, { value: 50 }], LOCALISATION: { - "pieddroit": { label: "Pied Droit", value: 1, locMod: 0, id: "pieddroit", nbArmure: 1, score: { min: 1, max: 1 }, coord: { top: 500, left: 0 } }, - "jambedroite": { label: "Jambe Droite", value: 1, locMod: -1, id: "jambedroite", nbArmure: 1, score: { min: 3, max: 4 }, coord: { top: 400, left: 100 } }, - "jambegauche": { label: "Jambe Gauche", value: 1, locMod: -1, id: "jambegauche", nbArmure: 1, score: { min: 5, max: 6 }, coord: { top: 400, left: 300 } }, - "piedgauche": { label: "Pied Gauche", value: 1, locMod: 0, id: "piedgauche", nbArmure: 1, score: { min: 2, max: 2 }, coord: { top: 500, left: 400 } }, - "maindroite": { label: "Main Droite", value: 1, locMod: 0, id: "maindroite", nbArmure: 1, score: { min: 7, max: 7 }, coord: { top: 0, left: 0 } }, - "maingauche": { label: "Main Gauche", value: 1, locMod: 0, id: "maingauche", nbArmure: 1, score: { min: 8, max: 8 }, coord: { top: 0, left: 400 } }, - "brasdroit": { label: "Bras Droit", value: 1, locMod: -1, id: "brasdroit", nbArmure: 2, score: { min: 9, max: 10 }, coord: { top: 200, left: 0 } }, - "brasgauche": { label: "Bras Gauche", value: 1, locMod: -1, id: "brasgauche", nbArmure: 2, score: { min: 11, max: 12 }, coord: { top: 200, left: 400 } }, - "corps": { label: "Corps", value: 1, id: "corps", locMod: -2, nbArmure: 2, score: { min: 13, max: 17 }, coord: { top: 200, left: 200 } }, - "tete": { label: "Tête", value: 1, id: "tete", locMod: -2, nbArmure: 2, score: { min: 18, max: 20 }, coord: { top: 0, left: 200 } }, + "pieddroit": { label: "Pied Droit", value: 1, locMod: 0, id: "pieddroit", categorie: "pied", nbArmure: 1, score: { min: 1, max: 1 }, coord: { top: 500, left: 0 } }, + "jambedroite": { label: "Jambe Droite", value: 1, locMod: -1, id: "jambedroite", categorie: "jambe", nbArmure: 1, score: { min: 3, max: 4 }, coord: { top: 400, left: 100 } }, + "jambegauche": { label: "Jambe Gauche", value: 1, locMod: -1, id: "jambegauche", categorie: "jambe", nbArmure: 1, score: { min: 5, max: 6 }, coord: { top: 400, left: 300 } }, + "piedgauche": { label: "Pied Gauche", value: 1, locMod: 0, id: "piedgauche", categorie: "pied", nbArmure: 1, score: { min: 2, max: 2 }, coord: { top: 500, left: 400 } }, + "maindroite": { label: "Main Droite", value: 1, locMod: 0, id: "maindroite", categorie: "main", nbArmure: 1, score: { min: 7, max: 7 }, coord: { top: 0, left: 0 } }, + "maingauche": { label: "Main Gauche", value: 1, locMod: 0, id: "maingauche", categorie: "main", nbArmure: 1, score: { min: 8, max: 8 }, coord: { top: 0, left: 400 } }, + "brasdroit": { label: "Bras Droit", value: 1, locMod: -1, id: "brasdroit", categorie: "bras", nbArmure: 2, score: { min: 9, max: 10 }, coord: { top: 200, left: 0 } }, + "brasgauche": { label: "Bras Gauche", value: 1, locMod: -1, id: "brasgauche", categorie: "bras", nbArmure: 2, score: { min: 11, max: 12 }, coord: { top: 200, left: 400 } }, + "corps": { label: "Corps", value: 1, id: "corps", categorie: "corps", locMod: -2, nbArmure: 2, score: { min: 13, max: 17 }, coord: { top: 200, left: 200 } }, + "tete": { label: "Tête", value: 1, id: "tete", categorie: "tete", locMod: -2, nbArmure: 2, score: { min: 18, max: 20 }, coord: { top: 0, left: 200 } }, + }, + + ATTAQUE_CIBLEES: { + "aucune": { label: "Aucune", id: "aucune", locMod: 0, description: "Attaque non ciblée" }, + "pieddroit": { label: "Pied Droit", id: "pieddroit", locMod: 0, description: "Attaque ciblée sur le pied droit" }, + "jambedroite": { label: "Jambe Droite", id: "jambedroite", locMod: -1, description: "Attaque ciblée sur la jambe droite" }, + "jambegauche": { label: "Jambe Gauche", id: "jambegauche", locMod: -1, description: "Attaque ciblée sur la jambe gauche" }, + "piedgauche": { label: "Pied Gauche", id: "piedgauche", locMod: 0, description: "Attaque ciblée sur le pied gauche" }, + "maindroite": { label: "Main Droite", id: "maindroite", locMod: 0, description: "Attaque ciblée sur la main droite" }, + "maingauche": { label: "Main Gauche", id: "maingauche", locMod: 0, description: "Attaque ciblée sur la main gauche" }, + "brasdroit": { label: "Bras Droit", id: "brasdroit", locMod: -1, description: "Attaque ciblée sur le bras droit" }, + "brasgauche": { label: "Bras Gauche", id: "brasgauche", locMod: -1, description: "Attaque ciblée sur le bras gauche" }, + "corps": { label: "Corps", id: "corps", locMod: -2, description: "Attaque ciblée sur le corps" }, + "tete": { label: "Tête", id: "tete", locMod: -2, description: "Attaque ciblée sur la tête" }, }, ARME_SPECIFICITE: { + "poing": { label: "Poings", id: "poing", melee: true, tir: false }, + "pied": { label: "Pieds", id: "pied", melee: true, tir: false }, "encombrante": { label: "Encombrante", id: "encombrante", melee: true, tir: true }, "maintiendistance": { label: "Maintien à distance", id: "maintiendistance", melee: true, tir: false }, "coupassomant": { label: "Coup assomant", id: "coupassomant", melee: true, tir: false }, @@ -94,7 +110,7 @@ export const TEDEUM_CONFIG = { }, caracteristiques: { - savoir: { id: "savoir", value: "savoir", label: "Savoir", description:"Cette caractéristique correspond à la capacité d'abstraction intellectuelle ainsi qu'à la culture générale du personnage. Elle permet d'évaluer la compétence de base Mémoriser." }, + savoir: { id: "savoir", value: "savoir", label: "Savoir", description: "Cette caractéristique correspond à la capacité d'abstraction intellectuelle ainsi qu'à la culture générale du personnage. Elle permet d'évaluer la compétence de base Mémoriser." }, sensibilite: { id: "sensibilite", value: "sensibilite", label: "Sensibilité", description: "Cette caractéristique correspond à l'ouverture du personnage sur le monde. Elle englobe l'altruisme, la spiritualité et la créativité du personnage. Elle permet d'évaluer la compétence de base Perception." }, entregent: { id: "entregent", value: "entregent", label: "Entregent", description: "Cette caractéristique correspond à l'ensemble des prédispositions sociales du personnage. Elle englobe le charisme et le respect des usages. Elle permet d'évaluer la compétence de base Charme." }, complexion: { id: "complexion", value: "complexion", label: "Complexion", description: "Cette caractéristique permet d'évaluer la santé et la résistance physique du per- sonnage. Elle permet de calculer la com- pétence de base Endurance, capitale dans la résolution des blessures, la résistance à la douleur, au poison et aux maladies." }, @@ -102,10 +118,10 @@ export const TEDEUM_CONFIG = { adresse: { id: "adresse", value: "adresse", label: "Adresse", description: "Cette caractéristique correspond à la rapidité et la dextérité du personnage. Elle livre le nombre d'actions qu'un personnage peut accomplir en un tour de combat et permet d'évaluer les compétences de base Initiative & Course." }, }, allonges: { - courte: { courte: { malus: 0 }, moyenne: { malus: -1 }, longue: { malus: -2 }, treslongue: { malus: 0, esquive: 2 } }, - moyenne: { courte: { malus: 0 }, moyenne: { malus: 0 }, longue: { malus: -1 }, treslongue: { malus: 0, esquive: 2 } }, - longue: { courte: { malus: -2 }, moyenne: { malus: -1 }, longue: { malus: 0 }, treslongue: { malus: -1, esquive: 1 } }, - treslongue: { courte: { malus: 0, esquive: 2 }, moyenne: { malus: 0, esquive: 2 }, longue: { malus: 0, esquive: 1 }, treslongue: { malus: 0 } }, + courte: { courte: { label: "Courte (0)", malus: 0 }, moyenne: { label: "Moyenne (-1)", malus: -1 }, longue: { label: "Longue (-2)", malus: -2 }, treslongue: { label: "Très longue (0, 2 Esquives)", malus: 0, esquive: 2 } }, + moyenne: { courte: { label: "Courte (0)", malus: 0 }, moyenne: { label: "Moyenne (0)", malus: 0 }, longue: { label: "Longue (-1)", malus: -1 }, treslongue: { label: "Très longue (0, 2 Esquives)", malus: 0, esquive: 2 } }, + longue: { courte: { label: "Courte (-2)", malus: -2 }, moyenne: { label: "Moyenne (-1)", malus: -1 }, longue: { label: "Longue (0)", malus: 0 }, treslongue: { label: "Très longue (-1, 2 Esquives)", malus: -1, esquive: 1 } }, + treslongue: { courte: { label: "Courte (0, 2 Esquives)", malus: 0, esquive: 2 }, moyenne: { label: "Moyenne (0, 2 Esquives)", malus: 0, esquive: 2 }, longue: { label: "Longue (0, 1 Esquive)", malus: 0, esquive: 1 }, treslongue: { label: "Très longue (0)", malus: 0 } }, }, providence: [ { labelM: "Brebis égarée", labelF: "Brebis égarée", value: 0, diceValue: "0" }, @@ -195,13 +211,14 @@ export const TEDEUM_CONFIG = { { value: "1", label: "+1 niveau" }, { value: "2", label: "+2 niveaux" } ], + blessuresOrder: ["indemne", "estafilade", "plaie", "plaiebeante", "plaieatroce", "tuenet", "tuenet", "tuenet", "tuenet", "tuenet"], blessures: { indemne: { value: 0, label: "Indemne", key: "indemne", degatsMax: -1, count: 0, modifier: 0 }, estafilade: { value: 1, label: "Estafilade", key: "estafilade", degatsMin: 0, degatsMax: 2, count: 1, modifier: 0 }, plaie: { value: 2, label: "Plaie", key: "plaie", degatsMin: 3, degatsMax: 4, count: 1, modifier: -1 }, plaiebeante: { value: 3, label: "Plaie béante", key: "plaiebeante", degatsMin: 5, degatsMax: 6, count: 1, modifier: -2 }, plaieatroce: { value: 4, label: "Plaie atroce", key: "plaieatroce", degatsMin: 7, degatsMax: 8, count: 1, horsCombat: true, modifier: -12 }, - tunenet: { value: 5, label: "Tué net", key: "tuenet", degatsMin: 9, degatsMax: 100, count: 1, horsCombat: true, mort: true, modifier: -12 } + tuenet: { value: 5, label: "Tué net", key: "tuenet", degatsMin: 9, degatsMax: 100, count: 1, horsCombat: true, mort: true, modifier: -100 } }, virulence: { aucune: { label: "Aucune", value: "aucune", modifier: 0 }, diff --git a/modules/common/tedeum-utility.js b/modules/common/tedeum-utility.js index 51547db..778aaad 100644 --- a/modules/common/tedeum-utility.js +++ b/modules/common/tedeum-utility.js @@ -212,7 +212,7 @@ export class TeDeumUtility { let isAttackWinner = true let rWinner = this.currentOpposition let rLooser = rollData - if (rWinner.total < rLooser.total) { + if (rWinner.total <= rLooser.total) { rWinner = rollData rLooser = this.currentOpposition isAttackWinner = false @@ -222,17 +222,33 @@ export class TeDeumUtility { winner: rWinner, looser: rLooser } + // Update difficulty + rWinner.difficulty = rLooser.total + rLooser.difficulty = rWinner.total + await this.computeResults(rWinner) + await this.computeResults(rLooser) + // Auto XP management when opposed + if (rWinner.isReussiteCritique) { + let actor = this.getActorFromRollData(rWinner) + actor.modifyXP(rWinner.carac.key, 1) + } + if (rLooser.isEchecCritique) { + let actor = this.getActorFromRollData(rLooser) + actor.modifyXP(rLooser.carac.key, 1) + } + let msg = await this.createChatWithRollMode(rollData.alias, { content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-opposition-result.hbs`, oppositionData) }) await msg.setFlag("world", "te-deum-rolldata", rollData) // Si le gagnant est l'attaquant, appliquer les dégats sur la victime - if ( isAttackWinner && rWinner.isSuccess && rWinner.mode == "arme" && rWinner.arme?.system.typeArme == "melee" && rWinner.defenderTokenId) { - this.appliquerDegats(rWinner) + if (isAttackWinner && rWinner.isSuccess && rWinner.mode == "arme" && rWinner.arme?.system.typeArme == "melee" && rWinner.defenderTokenId) { + await this.appliquerDegats(rWinner) } - console.log("Rolldata result", rollData) + + console.log("Opposition result", rollData, isAttackWinner, oppositionData) } } @@ -243,6 +259,12 @@ export class TeDeumUtility { if (defenderToken) { let actor = defenderToken.actor await actor.appliquerDegats(rollData) + // Attaque naturelle avec dégats inférieur à -2 + if ((rollData?.arme?.system.specificites?.poing?.hasSpec || rollData?.arme?.system.specificites?.pied?.hasSpec) && rollData.degats < -2) { + let attacker = this.getActorFromRollData(rollData) + attacker.appliquerBlessure("estafilade", "maindroite", "Contusion suite à une attaque naturelle") + ui.notifications.info(`${attacker.name} subit 1 contusion en infligeant ${rollData.degats} dégâts à mains nues`) + } } else { ui.notifications.error("Impossible de trouver la cible de l'attaque, aucun degats appliqué") } @@ -267,6 +289,17 @@ export class TeDeumUtility { TeDeumUtility.appliquerDegats(rollData, messageId) } }) + $(html).on("click", '.chat-command-gain-xp', event => { + let messageId = TeDeumUtility.findChatMessageId(event.currentTarget) + let message = game.messages.get(messageId) + let rollData = message.getFlag("world", "te-deum-rolldata") + if (rollData) { + let actor = TeDeumUtility.getActorFromRollData(rollData) + actor.modifyXP(rollData.carac.key, 1) + // Hide this button + event.currentTarget.style.display = 'none'; + } + }) } /* -------------------------------------------- */ @@ -477,6 +510,15 @@ export class TeDeumUtility { if (rollData.isMouvement) { localModifier -= 1 } + if (rollData.arme && rollData.allongeId) { + localModifier += rollData.allonges[rollData.allongeId].malus + rollData.allongeMalus = rollData.allonges[rollData.allongeId].malus + rollData.nbEsquives = rollData.allonges[rollData.allongeId]?.esquive || 0 + } + if (rollData.attaqueCiblee && rollData.attaqueCiblee != "aucune") { + localModifier -= 1 + rollData.loc = foundry.utils.duplicate(game.system.tedeum.config.LOCALISATION[rollData.attaqueCiblee]) + } let diceBase = this.modifyDice(rollData.carac.dice, localModifier + Number(rollData.bonusMalus) + rollData.santeModifier) if (!diceBase) return; diceFormula = diceBase + "x + " + rollData.compScore @@ -489,24 +531,30 @@ export class TeDeumUtility { /* -------------------------------------------- */ static async getLocalisation(rollData) { - let locRoll = await new Roll("1d20").roll() - await this.showDiceSoNice(locRoll, game.settings.get("core", "rollMode")) - rollData.locRoll = foundry.utils.duplicate(locRoll) - for (let key in game.system.tedeum.config.LOCALISATION) { - let loc = game.system.tedeum.config.LOCALISATION[key] - if (locRoll.total >= loc.score.min && locRoll.total <= loc.score.max) { - rollData.loc = foundry.utils.duplicate(loc) - break + let locRoll + if (rollData.loc) { + locRoll = await new Roll(String(rollData.loc.score.min)).roll() + } else { + locRoll = await new Roll("1d20").roll() + await this.showDiceSoNice(locRoll, game.settings.get("core", "rollMode")) + for (let key in game.system.tedeum.config.LOCALISATION) { + let loc = game.system.tedeum.config.LOCALISATION[key] + if (locRoll.total >= loc.score.min && locRoll.total <= loc.score.max) { + rollData.loc = foundry.utils.duplicate(loc) + break + } } } + rollData.locRoll = foundry.utils.duplicate(locRoll) } /* -------------------------------------------- */ static async processAttaqueMelee(rollData) { await this.getLocalisation(rollData) let actor = game.actors.get(rollData.actorId) - let bDegats = actor.getBonusDegats() - let degatsRoll = await new Roll(rollData.arme.system.degats + "+" + bDegats.value).roll() + let bDegats = actor.getAttaqueBonusDegats(rollData) + rollData.degatsFormula = rollData.arme.system.degats + "+" + bDegats + let degatsRoll = await new Roll(rollData.degatsFormula).roll() await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode")) rollData.degatsRoll = foundry.utils.duplicate(degatsRoll) rollData.degats = degatsRoll.total @@ -522,7 +570,7 @@ export class TeDeumUtility { await this.getLocalisation(rollData) // Now the degats let degatsRoll = await new Roll(rollData.arme.system.degats).roll() - await this.showDiceSoNice(rollData.locRoll, game.settings.get("core", "rollMode")) + await this.showDiceSoNice(rollData.degatsRoll, game.settings.get("core", "rollMode")) rollData.degatsRoll = foundry.utils.duplicate(degatsRoll) rollData.degats = degatsRoll.total } @@ -538,8 +586,8 @@ export class TeDeumUtility { } rollData.difficulty = game.system.tedeum.config.difficulte[rollData.difficulty].value // Compute the real competence score - if ( rollData.competence ) { - if ( rollData.competence.system.isBase) { + if (rollData.competence) { + if (rollData.competence.system.isBase) { rollData.compScore = actor.system.caracteristiques[rollData.competence.system.caracteristique].value } else { rollData.compScore = rollData.competence.system.score @@ -571,10 +619,6 @@ export class TeDeumUtility { if (rollData.enableProvidence) { actor.modifyProvidence(-1) } - // Manage XP - if (rollData.isReussiteCritique || rollData.isEchecCritique) { - actor.modifyXP(rollData.carac.key, 1) - } } /* -------------------------------------------- */ diff --git a/modules/data/tedeum-schema-blessure.js b/modules/data/tedeum-schema-blessure.js index f88d55d..9ca4a1d 100644 --- a/modules/data/tedeum-schema-blessure.js +++ b/modules/data/tedeum-schema-blessure.js @@ -4,8 +4,9 @@ export class TeDeumBlessureSchema extends foundry.abstract.TypeDataModel { const requiredInteger = { required: true, nullable: false, integer: true }; const schema = {}; - schema.typeBlessure = new fields.StringField({required: true, choices: ["indemne", "estafilade", "plaie", "plaiebeante", "plaieatroce", "tuenet"], initial: "estafilade"}); - schema.localisation = new fields.StringField({required: true, choices: ["piedgauche", "pieddroit", "jambegauche", "jambedroite", "maingauche", "maindroite", "brasgauche", "brasdroit", "tete", "corps"], initial: "corps"}); + schema.typeBlessure = new fields.StringField({ required: true, choices: ["indemne", "estafilade", "plaie", "plaiebeante", "plaieatroce", "tuenet"], initial: "estafilade" }); + schema.value = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }) + schema.localisation = new fields.StringField({ required: true, choices: ["piedgauche", "pieddroit", "jambegauche", "jambedroite", "maingauche", "maindroite", "brasgauche", "brasdroit", "tete", "corps"], initial: "corps" }); schema.description = new fields.HTMLField({ required: true, blank: true }); diff --git a/modules/dialogs/tedeum-roll-dialog.js b/modules/dialogs/tedeum-roll-dialog.js index f665190..d60e878 100644 --- a/modules/dialogs/tedeum-roll-dialog.js +++ b/modules/dialogs/tedeum-roll-dialog.js @@ -60,9 +60,15 @@ export class TeDeumRollDialog extends Dialog { html.find('#bonusMalusPerso').change((event) => { this.rollData.bonusMalusPerso = Number(event.currentTarget.value) }) + html.find('#roll-allonge').change((event) => { + this.rollData.allongeId = event.currentTarget.value + }) html.find('#roll-difficulty').change((event) => { this.rollData.difficulty = String(event.currentTarget.value) || "pardefaut" }) + html.find('#roll-attaque-ciblee').change((event) => { + this.rollData.attaqueCiblee = event.currentTarget.value || "0" + }) html.find('#roll-bonus-malus').change((event) => { this.rollData.bonusMalus = event.currentTarget.value || "0" }) @@ -80,8 +86,14 @@ export class TeDeumRollDialog extends Dialog { html.find('#roll-tir-mouvement').change((event) => { this.rollData.isMouvement = event.currentTarget.checked }) - - - + html.find('#roll-charge-a-pied').change((event) => { + this.rollData.isChargeAPied = event.currentTarget.checked + }) + html.find('#roll-charge-a-cheval').change((event) => { + this.rollData.isChargeACheval = event.currentTarget.checked + }) + + + } } \ No newline at end of file diff --git a/modules/items/tedeum-item-sheet.js b/modules/items/tedeum-item-sheet.js index 1207178..5bb6938 100644 --- a/modules/items/tedeum-item-sheet.js +++ b/modules/items/tedeum-item-sheet.js @@ -59,7 +59,6 @@ export class TeDeumItemSheet extends foundry.appv1.sheets.ItemSheet { } this.options.editable = !(this.object.origin == "embeddedItem"); - console.log("ITEM DATA", formData, this); return formData; } @@ -157,7 +156,7 @@ export class TeDeumItemSheet extends foundry.appv1.sheets.ItemSheet { let itemType = li.data("item-type"); }); - } + } /* -------------------------------------------- */ get template() { diff --git a/packs/aides/000122.log b/packs/aides/000134.log similarity index 100% rename from packs/aides/000122.log rename to packs/aides/000134.log diff --git a/packs/aides/000103.ldb b/packs/aides/000136.ldb similarity index 100% rename from packs/aides/000103.ldb rename to packs/aides/000136.ldb diff --git a/packs/aides/CURRENT b/packs/aides/CURRENT index 30eb131..c39c670 100644 --- a/packs/aides/CURRENT +++ b/packs/aides/CURRENT @@ -1 +1 @@ -MANIFEST-000120 +MANIFEST-000132 diff --git a/packs/aides/LOG b/packs/aides/LOG index d7a8f8a..c5263ec 100644 --- a/packs/aides/LOG +++ b/packs/aides/LOG @@ -1,7 +1,11 @@ -2025/07/09-17:43:10.022659 7f2a0effd6c0 Recovering log #118 -2025/07/09-17:43:10.033191 7f2a0effd6c0 Delete type=3 #116 -2025/07/09-17:43:10.033247 7f2a0effd6c0 Delete type=0 #118 -2025/07/09-18:03:48.854204 7f276ffff6c0 Level-0 table #123: started -2025/07/09-18:03:48.854235 7f276ffff6c0 Level-0 table #123: 0 bytes OK -2025/07/09-18:03:48.860211 7f276ffff6c0 Delete type=0 #121 -2025/07/09-18:03:48.860371 7f276ffff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.746719 7f7f2bfff6c0 Delete type=3 #1 +2025/09/18-17:24:09.744265 7f7f29bff6c0 Level-0 table #135: started +2025/09/18-17:24:09.744308 7f7f29bff6c0 Level-0 table #135: 0 bytes OK +2025/09/18-17:24:09.802551 7f7f29bff6c0 Delete type=0 #133 +2025/09/18-17:24:09.802767 7f7f29bff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 25 : 1 +2025/09/18-17:24:09.802780 7f7f29bff6c0 Compacting 1@0 + 0@1 files +2025/09/18-17:24:09.830358 7f7f29bff6c0 Generated table #136@0: 5 keys, 3728 bytes +2025/09/18-17:24:09.830408 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 3728 bytes +2025/09/18-17:24:09.891222 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2025/09/18-17:24:09.891483 7f7f29bff6c0 Delete type=2 #103 +2025/09/18-17:24:10.130709 7f7f29bff6c0 Manual compaction at level-0 from '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 25 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) diff --git a/packs/aides/LOG.old b/packs/aides/LOG.old index 5d4506a..919b432 100644 --- a/packs/aides/LOG.old +++ b/packs/aides/LOG.old @@ -1,7 +1,4 @@ -2025/07/02-23:06:08.560525 7f0793fff6c0 Recovering log #114 -2025/07/02-23:06:08.610681 7f0793fff6c0 Delete type=3 #112 -2025/07/02-23:06:08.610784 7f0793fff6c0 Delete type=0 #114 -2025/07/02-23:08:13.585521 7f07923ff6c0 Level-0 table #119: started -2025/07/02-23:08:13.585561 7f07923ff6c0 Level-0 table #119: 0 bytes OK -2025/07/02-23:08:13.592021 7f07923ff6c0 Delete type=0 #117 -2025/07/02-23:08:13.592190 7f07923ff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.730278 7f7f2bfff6c0 Log #130: 0 ops saved to Table #131 OK +2025/09/18-11:50:45.730412 7f7f2bfff6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/aides/000130.log: OK +2025/09/18-11:50:45.730474 7f7f2bfff6c0 Table #103: 5 entries OK +2025/09/18-11:50:45.733594 7f7f2bfff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/aides; recovered 1 files; 3728 bytes. Some data may have been lost. **** diff --git a/packs/aides/MANIFEST-000120 b/packs/aides/MANIFEST-000120 deleted file mode 100644 index 1668b4e..0000000 Binary files a/packs/aides/MANIFEST-000120 and /dev/null differ diff --git a/packs/aides/MANIFEST-000132 b/packs/aides/MANIFEST-000132 new file mode 100644 index 0000000..c9a5ced Binary files /dev/null and b/packs/aides/MANIFEST-000132 differ diff --git a/packs/armes/000225.log b/packs/aides/lost/000130.log similarity index 100% rename from packs/armes/000225.log rename to packs/aides/lost/000130.log diff --git a/packs/armures/000224.log b/packs/armes/000237.log similarity index 100% rename from packs/armures/000224.log rename to packs/armes/000237.log diff --git a/packs/armes/000206.ldb b/packs/armes/000239.ldb similarity index 100% rename from packs/armes/000206.ldb rename to packs/armes/000239.ldb diff --git a/packs/armes/CURRENT b/packs/armes/CURRENT index 449897e..32af177 100644 --- a/packs/armes/CURRENT +++ b/packs/armes/CURRENT @@ -1 +1 @@ -MANIFEST-000223 +MANIFEST-000235 diff --git a/packs/armes/LOG b/packs/armes/LOG index fb761c9..667a88d 100644 --- a/packs/armes/LOG +++ b/packs/armes/LOG @@ -1,7 +1,11 @@ -2025/07/09-17:43:09.933075 7f2a0e7fc6c0 Recovering log #221 -2025/07/09-17:43:09.943069 7f2a0e7fc6c0 Delete type=3 #219 -2025/07/09-17:43:09.943126 7f2a0e7fc6c0 Delete type=0 #221 -2025/07/09-18:03:48.778823 7f276ffff6c0 Level-0 table #226: started -2025/07/09-18:03:48.778862 7f276ffff6c0 Level-0 table #226: 0 bytes OK -2025/07/09-18:03:48.785076 7f276ffff6c0 Delete type=0 #224 -2025/07/09-18:03:48.804468 7f276ffff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.598190 7f7f2a7fc6c0 Delete type=3 #1 +2025/09/18-17:24:08.419689 7f7f29bff6c0 Level-0 table #238: started +2025/09/18-17:24:08.419727 7f7f29bff6c0 Level-0 table #238: 0 bytes OK +2025/09/18-17:24:08.484925 7f7f29bff6c0 Delete type=0 #236 +2025/09/18-17:24:08.766692 7f7f29bff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at '!items!wxIHkrq98eQ3cOvp' @ 73 : 1 +2025/09/18-17:24:08.766704 7f7f29bff6c0 Compacting 1@0 + 0@1 files +2025/09/18-17:24:08.800723 7f7f29bff6c0 Generated table #239@0: 38 keys, 31247 bytes +2025/09/18-17:24:08.800756 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 31247 bytes +2025/09/18-17:24:08.859553 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2025/09/18-17:24:08.859745 7f7f29bff6c0 Delete type=2 #206 +2025/09/18-17:24:08.860015 7f7f29bff6c0 Manual compaction at level-0 from '!items!wxIHkrq98eQ3cOvp' @ 73 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end) diff --git a/packs/armes/LOG.old b/packs/armes/LOG.old index 1c88ef5..24817bb 100644 --- a/packs/armes/LOG.old +++ b/packs/armes/LOG.old @@ -1,7 +1,4 @@ -2025/07/02-23:06:08.061648 7f0792ffd6c0 Recovering log #217 -2025/07/02-23:06:08.112616 7f0792ffd6c0 Delete type=3 #215 -2025/07/02-23:06:08.112666 7f0792ffd6c0 Delete type=0 #217 -2025/07/02-23:08:13.519462 7f07923ff6c0 Level-0 table #222: started -2025/07/02-23:08:13.519492 7f07923ff6c0 Level-0 table #222: 0 bytes OK -2025/07/02-23:08:13.525466 7f07923ff6c0 Delete type=0 #220 -2025/07/02-23:08:13.539414 7f07923ff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.580327 7f7f2a7fc6c0 Log #233: 0 ops saved to Table #234 OK +2025/09/18-11:50:45.580491 7f7f2a7fc6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/armes/000233.log: OK +2025/09/18-11:50:45.580597 7f7f2a7fc6c0 Table #206: 38 entries OK +2025/09/18-11:50:45.584469 7f7f2a7fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/armes; recovered 1 files; 31247 bytes. Some data may have been lost. **** diff --git a/packs/armes/MANIFEST-000223 b/packs/armes/MANIFEST-000223 deleted file mode 100644 index 33c9fe2..0000000 Binary files a/packs/armes/MANIFEST-000223 and /dev/null differ diff --git a/packs/armes/MANIFEST-000235 b/packs/armes/MANIFEST-000235 new file mode 100644 index 0000000..eca0ff7 Binary files /dev/null and b/packs/armes/MANIFEST-000235 differ diff --git a/packs/competences/000221.log b/packs/armes/lost/000233.log similarity index 100% rename from packs/competences/000221.log rename to packs/armes/lost/000233.log diff --git a/packs/education/000234.log b/packs/armures/000236.log similarity index 100% rename from packs/education/000234.log rename to packs/armures/000236.log diff --git a/packs/armures/000205.ldb b/packs/armures/000238.ldb similarity index 100% rename from packs/armures/000205.ldb rename to packs/armures/000238.ldb diff --git a/packs/armures/CURRENT b/packs/armures/CURRENT index a8d01b2..b4e971f 100644 --- a/packs/armures/CURRENT +++ b/packs/armures/CURRENT @@ -1 +1 @@ -MANIFEST-000222 +MANIFEST-000234 diff --git a/packs/armures/LOG b/packs/armures/LOG index f3d0cef..1b18ae5 100644 --- a/packs/armures/LOG +++ b/packs/armures/LOG @@ -1,7 +1,11 @@ -2025/07/09-17:43:09.945259 7f2a0dffb6c0 Recovering log #220 -2025/07/09-17:43:09.955705 7f2a0dffb6c0 Delete type=3 #218 -2025/07/09-17:43:09.955844 7f2a0dffb6c0 Delete type=0 #220 -2025/07/09-18:03:48.791392 7f276ffff6c0 Level-0 table #225: started -2025/07/09-18:03:48.791426 7f276ffff6c0 Level-0 table #225: 0 bytes OK -2025/07/09-18:03:48.797485 7f276ffff6c0 Delete type=0 #223 -2025/07/09-18:03:48.804509 7f276ffff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.617997 7f7f2a7fc6c0 Delete type=3 #1 +2025/09/18-17:24:08.294497 7f7f29bff6c0 Level-0 table #237: started +2025/09/18-17:24:08.294539 7f7f29bff6c0 Level-0 table #237: 0 bytes OK +2025/09/18-17:24:08.351872 7f7f29bff6c0 Delete type=0 #235 +2025/09/18-17:24:08.582142 7f7f29bff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at '!items!ufvhWG5V8pX0qrtR' @ 54 : 1 +2025/09/18-17:24:08.582154 7f7f29bff6c0 Compacting 1@0 + 0@1 files +2025/09/18-17:24:08.616167 7f7f29bff6c0 Generated table #238@0: 29 keys, 12111 bytes +2025/09/18-17:24:08.616198 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 12111 bytes +2025/09/18-17:24:08.671918 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2025/09/18-17:24:08.672212 7f7f29bff6c0 Delete type=2 #205 +2025/09/18-17:24:08.859972 7f7f29bff6c0 Manual compaction at level-0 from '!items!ufvhWG5V8pX0qrtR' @ 54 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end) diff --git a/packs/armures/LOG.old b/packs/armures/LOG.old index af2e1c8..fd90db7 100644 --- a/packs/armures/LOG.old +++ b/packs/armures/LOG.old @@ -1,7 +1,4 @@ -2025/07/02-23:06:08.115418 7f07937fe6c0 Recovering log #216 -2025/07/02-23:06:08.203034 7f07937fe6c0 Delete type=3 #214 -2025/07/02-23:06:08.203104 7f07937fe6c0 Delete type=0 #216 -2025/07/02-23:08:13.507158 7f07923ff6c0 Level-0 table #221: started -2025/07/02-23:08:13.507179 7f07923ff6c0 Level-0 table #221: 0 bytes OK -2025/07/02-23:08:13.513412 7f07923ff6c0 Delete type=0 #219 -2025/07/02-23:08:13.539385 7f07923ff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.601765 7f7f2a7fc6c0 Log #232: 0 ops saved to Table #233 OK +2025/09/18-11:50:45.601883 7f7f2a7fc6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/armures/000232.log: OK +2025/09/18-11:50:45.601950 7f7f2a7fc6c0 Table #205: 29 entries OK +2025/09/18-11:50:45.605327 7f7f2a7fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/armures; recovered 1 files; 12111 bytes. Some data may have been lost. **** diff --git a/packs/armures/MANIFEST-000222 b/packs/armures/MANIFEST-000222 deleted file mode 100644 index 951b997..0000000 Binary files a/packs/armures/MANIFEST-000222 and /dev/null differ diff --git a/packs/armures/MANIFEST-000234 b/packs/armures/MANIFEST-000234 new file mode 100644 index 0000000..1af40f4 Binary files /dev/null and b/packs/armures/MANIFEST-000234 differ diff --git a/packs/graces/000224.log b/packs/armures/lost/000232.log similarity index 100% rename from packs/graces/000224.log rename to packs/armures/lost/000232.log diff --git a/packs/maladies/000224.log b/packs/competences/000235.log similarity index 100% rename from packs/maladies/000224.log rename to packs/competences/000235.log diff --git a/packs/competences/000202.ldb b/packs/competences/000237.ldb similarity index 80% rename from packs/competences/000202.ldb rename to packs/competences/000237.ldb index 35c4a1d..276b7b7 100644 Binary files a/packs/competences/000202.ldb and b/packs/competences/000237.ldb differ diff --git a/packs/competences/CURRENT b/packs/competences/CURRENT index 7d68d99..98f3a71 100644 --- a/packs/competences/CURRENT +++ b/packs/competences/CURRENT @@ -1 +1 @@ -MANIFEST-000219 +MANIFEST-000233 diff --git a/packs/competences/LOG b/packs/competences/LOG index 039bdb3..59b7244 100644 --- a/packs/competences/LOG +++ b/packs/competences/LOG @@ -1,7 +1,11 @@ -2025/07/09-17:43:09.919870 7f2a0d7fa6c0 Recovering log #217 -2025/07/09-17:43:09.930288 7f2a0d7fa6c0 Delete type=3 #215 -2025/07/09-17:43:09.930358 7f2a0d7fa6c0 Delete type=0 #217 -2025/07/09-18:03:48.785230 7f276ffff6c0 Level-0 table #222: started -2025/07/09-18:03:48.785267 7f276ffff6c0 Level-0 table #222: 0 bytes OK -2025/07/09-18:03:48.791250 7f276ffff6c0 Delete type=0 #220 -2025/07/09-18:03:48.804490 7f276ffff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.576078 7f7f2affd6c0 Delete type=3 #1 +2025/09/18-17:24:08.352040 7f7f29bff6c0 Level-0 table #236: started +2025/09/18-17:24:08.352081 7f7f29bff6c0 Level-0 table #236: 0 bytes OK +2025/09/18-17:24:08.419524 7f7f29bff6c0 Delete type=0 #234 +2025/09/18-17:24:08.672479 7f7f29bff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at '!items!yx4k7lQHGcom99mk' @ 237 : 1 +2025/09/18-17:24:08.672498 7f7f29bff6c0 Compacting 1@0 + 0@1 files +2025/09/18-17:24:08.706074 7f7f29bff6c0 Generated table #237@0: 115 keys, 38139 bytes +2025/09/18-17:24:08.706156 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 38139 bytes +2025/09/18-17:24:08.766397 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2025/09/18-17:24:08.766527 7f7f29bff6c0 Delete type=2 #231 +2025/09/18-17:24:08.859995 7f7f29bff6c0 Manual compaction at level-0 from '!items!yx4k7lQHGcom99mk' @ 237 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end) diff --git a/packs/competences/LOG.old b/packs/competences/LOG.old index 44e7852..255aac0 100644 --- a/packs/competences/LOG.old +++ b/packs/competences/LOG.old @@ -1,7 +1,4 @@ -2025/07/02-23:06:08.011331 7f0798bfa6c0 Recovering log #213 -2025/07/02-23:06:08.059546 7f0798bfa6c0 Delete type=3 #211 -2025/07/02-23:06:08.059612 7f0798bfa6c0 Delete type=0 #213 -2025/07/02-23:08:13.513511 7f07923ff6c0 Level-0 table #218: started -2025/07/02-23:08:13.513531 7f07923ff6c0 Level-0 table #218: 0 bytes OK -2025/07/02-23:08:13.519351 7f07923ff6c0 Delete type=0 #216 -2025/07/02-23:08:13.539400 7f07923ff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.377468 7f7f2affd6c0 Log #229: 0 ops saved to Table #232 OK +2025/09/18-11:50:45.377609 7f7f2affd6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/competences/000229.log: OK +2025/09/18-11:50:45.377734 7f7f2affd6c0 Table #231: 115 entries OK +2025/09/18-11:50:45.381132 7f7f2affd6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/competences; recovered 1 files; 38139 bytes. Some data may have been lost. **** diff --git a/packs/competences/MANIFEST-000219 b/packs/competences/MANIFEST-000219 deleted file mode 100644 index 1f77f8f..0000000 Binary files a/packs/competences/MANIFEST-000219 and /dev/null differ diff --git a/packs/competences/MANIFEST-000233 b/packs/competences/MANIFEST-000233 new file mode 100644 index 0000000..6b97c23 Binary files /dev/null and b/packs/competences/MANIFEST-000233 differ diff --git a/packs/scenes/000161.log b/packs/competences/lost/000229.log similarity index 100% rename from packs/scenes/000161.log rename to packs/competences/lost/000229.log diff --git a/packs/simples/000225.log b/packs/education/000246.log similarity index 100% rename from packs/simples/000225.log rename to packs/education/000246.log diff --git a/packs/education/000231.ldb b/packs/education/000248.ldb similarity index 100% rename from packs/education/000231.ldb rename to packs/education/000248.ldb diff --git a/packs/education/CURRENT b/packs/education/CURRENT index bcb858e..8857e5c 100644 --- a/packs/education/CURRENT +++ b/packs/education/CURRENT @@ -1 +1 @@ -MANIFEST-000232 +MANIFEST-000244 diff --git a/packs/education/LOG b/packs/education/LOG index 98d5465..ae062ec 100644 --- a/packs/education/LOG +++ b/packs/education/LOG @@ -1,7 +1,11 @@ -2025/07/09-17:43:09.957922 7f2a0d7fa6c0 Recovering log #229 -2025/07/09-17:43:09.968395 7f2a0d7fa6c0 Delete type=3 #227 -2025/07/09-17:43:09.968449 7f2a0d7fa6c0 Delete type=0 #229 -2025/07/09-18:03:48.797598 7f276ffff6c0 Level-0 table #235: started -2025/07/09-18:03:48.797621 7f276ffff6c0 Level-0 table #235: 0 bytes OK -2025/07/09-18:03:48.804333 7f276ffff6c0 Delete type=0 #233 -2025/07/09-18:03:48.804527 7f276ffff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.638850 7f7f2bfff6c0 Delete type=3 #1 +2025/09/18-17:24:08.232941 7f7f29bff6c0 Level-0 table #247: started +2025/09/18-17:24:08.233014 7f7f29bff6c0 Level-0 table #247: 0 bytes OK +2025/09/18-17:24:08.294274 7f7f29bff6c0 Delete type=0 #245 +2025/09/18-17:24:08.485079 7f7f29bff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at '!items!zGlRtP7zSnkjuuue' @ 510 : 1 +2025/09/18-17:24:08.485093 7f7f29bff6c0 Compacting 1@0 + 0@1 files +2025/09/18-17:24:08.521894 7f7f29bff6c0 Generated table #248@0: 71 keys, 264331 bytes +2025/09/18-17:24:08.521971 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 264331 bytes +2025/09/18-17:24:08.581818 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2025/09/18-17:24:08.581947 7f7f29bff6c0 Delete type=2 #231 +2025/09/18-17:24:08.859951 7f7f29bff6c0 Manual compaction at level-0 from '!items!zGlRtP7zSnkjuuue' @ 510 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end) diff --git a/packs/education/LOG.old b/packs/education/LOG.old index f5b4413..d61d886 100644 --- a/packs/education/LOG.old +++ b/packs/education/LOG.old @@ -1,14 +1,4 @@ -2025/07/02-23:06:08.205635 7f0798bfa6c0 Recovering log #225 -2025/07/02-23:06:08.258516 7f0798bfa6c0 Delete type=3 #223 -2025/07/02-23:06:08.258587 7f0798bfa6c0 Delete type=0 #225 -2025/07/02-23:08:13.497309 7f07923ff6c0 Level-0 table #230: started -2025/07/02-23:08:13.500727 7f07923ff6c0 Level-0 table #230: 31862 bytes OK -2025/07/02-23:08:13.507034 7f07923ff6c0 Delete type=0 #228 -2025/07/02-23:08:13.525588 7f07923ff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at '!items!dbl7clezSXISzlqE' @ 511 : 1 -2025/07/02-23:08:13.525598 7f07923ff6c0 Compacting 1@0 + 1@1 files -2025/07/02-23:08:13.532830 7f07923ff6c0 Generated table #231@0: 71 keys, 264331 bytes -2025/07/02-23:08:13.532886 7f07923ff6c0 Compacted 1@0 + 1@1 files => 264331 bytes -2025/07/02-23:08:13.538890 7f07923ff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2025/07/02-23:08:13.539063 7f07923ff6c0 Delete type=2 #214 -2025/07/02-23:08:13.539294 7f07923ff6c0 Delete type=2 #230 -2025/07/02-23:08:13.539429 7f07923ff6c0 Manual compaction at level-0 from '!items!dbl7clezSXISzlqE' @ 511 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.622061 7f7f2bfff6c0 Log #242: 0 ops saved to Table #243 OK +2025/09/18-11:50:45.622200 7f7f2bfff6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/education/000242.log: OK +2025/09/18-11:50:45.622719 7f7f2bfff6c0 Table #231: 71 entries OK +2025/09/18-11:50:45.625987 7f7f2bfff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/education; recovered 1 files; 264331 bytes. Some data may have been lost. **** diff --git a/packs/education/MANIFEST-000232 b/packs/education/MANIFEST-000232 deleted file mode 100644 index 7ee776a..0000000 Binary files a/packs/education/MANIFEST-000232 and /dev/null differ diff --git a/packs/education/MANIFEST-000244 b/packs/education/MANIFEST-000244 new file mode 100644 index 0000000..2f30924 Binary files /dev/null and b/packs/education/MANIFEST-000244 differ diff --git a/packs/education/lost/000242.log b/packs/education/lost/000242.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/graces/000236.log b/packs/graces/000236.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/graces/000205.ldb b/packs/graces/000238.ldb similarity index 100% rename from packs/graces/000205.ldb rename to packs/graces/000238.ldb diff --git a/packs/graces/CURRENT b/packs/graces/CURRENT index a8d01b2..b4e971f 100644 --- a/packs/graces/CURRENT +++ b/packs/graces/CURRENT @@ -1 +1 @@ -MANIFEST-000222 +MANIFEST-000234 diff --git a/packs/graces/LOG b/packs/graces/LOG index 860ea10..6bbadfb 100644 --- a/packs/graces/LOG +++ b/packs/graces/LOG @@ -1,7 +1,11 @@ -2025/07/09-17:43:09.971163 7f2a0e7fc6c0 Recovering log #220 -2025/07/09-17:43:09.980955 7f2a0e7fc6c0 Delete type=3 #218 -2025/07/09-17:43:09.981011 7f2a0e7fc6c0 Delete type=0 #220 -2025/07/09-18:03:48.811156 7f276ffff6c0 Level-0 table #225: started -2025/07/09-18:03:48.811194 7f276ffff6c0 Level-0 table #225: 0 bytes OK -2025/07/09-18:03:48.817214 7f276ffff6c0 Delete type=0 #223 -2025/07/09-18:03:48.830580 7f276ffff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.661051 7f7f2b7fe6c0 Delete type=3 #1 +2025/09/18-17:24:08.860133 7f7f29bff6c0 Level-0 table #237: started +2025/09/18-17:24:08.860169 7f7f29bff6c0 Level-0 table #237: 0 bytes OK +2025/09/18-17:24:08.917842 7f7f29bff6c0 Delete type=0 #235 +2025/09/18-17:24:09.119729 7f7f29bff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at '!items!zUYIVOuFpRur9aAR' @ 109 : 1 +2025/09/18-17:24:09.119743 7f7f29bff6c0 Compacting 1@0 + 0@1 files +2025/09/18-17:24:09.155742 7f7f29bff6c0 Generated table #238@0: 49 keys, 20052 bytes +2025/09/18-17:24:09.155788 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 20052 bytes +2025/09/18-17:24:09.214820 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2025/09/18-17:24:09.214942 7f7f29bff6c0 Delete type=2 #205 +2025/09/18-17:24:09.499501 7f7f29bff6c0 Manual compaction at level-0 from '!items!zUYIVOuFpRur9aAR' @ 109 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end) diff --git a/packs/graces/LOG.old b/packs/graces/LOG.old index 9b5c95f..4cd77b4 100644 --- a/packs/graces/LOG.old +++ b/packs/graces/LOG.old @@ -1,7 +1,4 @@ -2025/07/02-23:06:08.261714 7f0792ffd6c0 Recovering log #216 -2025/07/02-23:06:08.311445 7f0792ffd6c0 Delete type=3 #214 -2025/07/02-23:06:08.311538 7f0792ffd6c0 Delete type=0 #216 -2025/07/02-23:08:13.545827 7f07923ff6c0 Level-0 table #221: started -2025/07/02-23:08:13.545856 7f07923ff6c0 Level-0 table #221: 0 bytes OK -2025/07/02-23:08:13.552104 7f07923ff6c0 Delete type=0 #219 -2025/07/02-23:08:13.565260 7f07923ff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.643620 7f7f2b7fe6c0 Log #232: 0 ops saved to Table #233 OK +2025/09/18-11:50:45.643740 7f7f2b7fe6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/graces/000232.log: OK +2025/09/18-11:50:45.643815 7f7f2b7fe6c0 Table #205: 49 entries OK +2025/09/18-11:50:45.647831 7f7f2b7fe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/graces; recovered 1 files; 20052 bytes. Some data may have been lost. **** diff --git a/packs/graces/MANIFEST-000222 b/packs/graces/MANIFEST-000222 deleted file mode 100644 index acf65ec..0000000 Binary files a/packs/graces/MANIFEST-000222 and /dev/null differ diff --git a/packs/graces/MANIFEST-000234 b/packs/graces/MANIFEST-000234 new file mode 100644 index 0000000..57c423d Binary files /dev/null and b/packs/graces/MANIFEST-000234 differ diff --git a/packs/graces/lost/000232.log b/packs/graces/lost/000232.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/maladies/000236.log b/packs/maladies/000236.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/maladies/000205.ldb b/packs/maladies/000238.ldb similarity index 100% rename from packs/maladies/000205.ldb rename to packs/maladies/000238.ldb diff --git a/packs/maladies/CURRENT b/packs/maladies/CURRENT index a8d01b2..b4e971f 100644 --- a/packs/maladies/CURRENT +++ b/packs/maladies/CURRENT @@ -1 +1 @@ -MANIFEST-000222 +MANIFEST-000234 diff --git a/packs/maladies/LOG b/packs/maladies/LOG index 0d891cc..a4a61e9 100644 --- a/packs/maladies/LOG +++ b/packs/maladies/LOG @@ -1,7 +1,11 @@ -2025/07/09-17:43:09.982946 7f2a0effd6c0 Recovering log #220 -2025/07/09-17:43:09.994498 7f2a0effd6c0 Delete type=3 #218 -2025/07/09-17:43:09.994574 7f2a0effd6c0 Delete type=0 #220 -2025/07/09-18:03:48.804608 7f276ffff6c0 Level-0 table #225: started -2025/07/09-18:03:48.804666 7f276ffff6c0 Level-0 table #225: 0 bytes OK -2025/07/09-18:03:48.810987 7f276ffff6c0 Delete type=0 #223 -2025/07/09-18:03:48.830569 7f276ffff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.681692 7f7f2affd6c0 Delete type=3 #1 +2025/09/18-17:24:08.917988 7f7f29bff6c0 Level-0 table #237: started +2025/09/18-17:24:08.918018 7f7f29bff6c0 Level-0 table #237: 0 bytes OK +2025/09/18-17:24:08.983600 7f7f29bff6c0 Delete type=0 #235 +2025/09/18-17:24:09.215118 7f7f29bff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at '!items!ysGehYm1VkMWrI22' @ 71 : 1 +2025/09/18-17:24:09.215131 7f7f29bff6c0 Compacting 1@0 + 0@1 files +2025/09/18-17:24:09.251613 7f7f29bff6c0 Generated table #238@0: 17 keys, 11517 bytes +2025/09/18-17:24:09.251694 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 11517 bytes +2025/09/18-17:24:09.305026 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2025/09/18-17:24:09.305314 7f7f29bff6c0 Delete type=2 #205 +2025/09/18-17:24:09.499516 7f7f29bff6c0 Manual compaction at level-0 from '!items!ysGehYm1VkMWrI22' @ 71 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end) diff --git a/packs/maladies/LOG.old b/packs/maladies/LOG.old index 518c4f8..73d8014 100644 --- a/packs/maladies/LOG.old +++ b/packs/maladies/LOG.old @@ -1,7 +1,4 @@ -2025/07/02-23:06:08.314387 7f07937fe6c0 Recovering log #216 -2025/07/02-23:06:08.375793 7f07937fe6c0 Delete type=3 #214 -2025/07/02-23:06:08.375871 7f07937fe6c0 Delete type=0 #216 -2025/07/02-23:08:13.539538 7f07923ff6c0 Level-0 table #221: started -2025/07/02-23:08:13.539632 7f07923ff6c0 Level-0 table #221: 0 bytes OK -2025/07/02-23:08:13.545699 7f07923ff6c0 Delete type=0 #219 -2025/07/02-23:08:13.565250 7f07923ff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.665172 7f7f2affd6c0 Log #232: 0 ops saved to Table #233 OK +2025/09/18-11:50:45.665437 7f7f2affd6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/maladies/000232.log: OK +2025/09/18-11:50:45.665530 7f7f2affd6c0 Table #205: 17 entries OK +2025/09/18-11:50:45.668785 7f7f2affd6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/maladies; recovered 1 files; 11517 bytes. Some data may have been lost. **** diff --git a/packs/maladies/MANIFEST-000222 b/packs/maladies/MANIFEST-000222 deleted file mode 100644 index 7e9abad..0000000 Binary files a/packs/maladies/MANIFEST-000222 and /dev/null differ diff --git a/packs/maladies/MANIFEST-000234 b/packs/maladies/MANIFEST-000234 new file mode 100644 index 0000000..cee291f Binary files /dev/null and b/packs/maladies/MANIFEST-000234 differ diff --git a/packs/maladies/lost/000232.log b/packs/maladies/lost/000232.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/scenes/000173.log b/packs/scenes/000173.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/scenes/000142.ldb b/packs/scenes/000175.ldb similarity index 100% rename from packs/scenes/000142.ldb rename to packs/scenes/000175.ldb diff --git a/packs/scenes/CURRENT b/packs/scenes/CURRENT index eda0873..91e41f4 100644 --- a/packs/scenes/CURRENT +++ b/packs/scenes/CURRENT @@ -1 +1 @@ -MANIFEST-000159 +MANIFEST-000171 diff --git a/packs/scenes/LOG b/packs/scenes/LOG index a9d60be..2447775 100644 --- a/packs/scenes/LOG +++ b/packs/scenes/LOG @@ -1,7 +1,11 @@ -2025/07/09-17:43:10.009504 7f2a0dffb6c0 Recovering log #157 -2025/07/09-17:43:10.019481 7f2a0dffb6c0 Delete type=3 #155 -2025/07/09-17:43:10.019581 7f2a0dffb6c0 Delete type=0 #157 -2025/07/09-18:03:48.823612 7f276ffff6c0 Level-0 table #162: started -2025/07/09-18:03:48.823646 7f276ffff6c0 Level-0 table #162: 0 bytes OK -2025/07/09-18:03:48.830454 7f276ffff6c0 Delete type=0 #160 -2025/07/09-18:03:48.830610 7f276ffff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.725670 7f7f2a7fc6c0 Delete type=3 #1 +2025/09/18-17:24:09.049574 7f7f29bff6c0 Level-0 table #174: started +2025/09/18-17:24:09.049607 7f7f29bff6c0 Level-0 table #174: 0 bytes OK +2025/09/18-17:24:09.119551 7f7f29bff6c0 Delete type=0 #172 +2025/09/18-17:24:09.404507 7f7f29bff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at '!scenes!FJXugdbkBpEJEdR6' @ 5 : 1 +2025/09/18-17:24:09.404524 7f7f29bff6c0 Compacting 1@0 + 0@1 files +2025/09/18-17:24:09.434413 7f7f29bff6c0 Generated table #175@0: 1 keys, 1344 bytes +2025/09/18-17:24:09.434448 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 1344 bytes +2025/09/18-17:24:09.499220 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2025/09/18-17:24:09.499350 7f7f29bff6c0 Delete type=2 #142 +2025/09/18-17:24:09.499541 7f7f29bff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 5 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end) diff --git a/packs/scenes/LOG.old b/packs/scenes/LOG.old index a8ca20d..f908dc8 100644 --- a/packs/scenes/LOG.old +++ b/packs/scenes/LOG.old @@ -1,7 +1,4 @@ -2025/07/02-23:06:08.461850 7f0792ffd6c0 Recovering log #153 -2025/07/02-23:06:08.557282 7f0792ffd6c0 Delete type=3 #151 -2025/07/02-23:06:08.557355 7f0792ffd6c0 Delete type=0 #153 -2025/07/02-23:08:13.559253 7f07923ff6c0 Level-0 table #158: started -2025/07/02-23:08:13.559274 7f07923ff6c0 Level-0 table #158: 0 bytes OK -2025/07/02-23:08:13.565147 7f07923ff6c0 Delete type=0 #156 -2025/07/02-23:08:13.565275 7f07923ff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.707694 7f7f2a7fc6c0 Log #169: 0 ops saved to Table #170 OK +2025/09/18-11:50:45.707806 7f7f2a7fc6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/scenes/000169.log: OK +2025/09/18-11:50:45.707854 7f7f2a7fc6c0 Table #142: 1 entries OK +2025/09/18-11:50:45.712286 7f7f2a7fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/scenes; recovered 1 files; 1344 bytes. Some data may have been lost. **** diff --git a/packs/scenes/MANIFEST-000159 b/packs/scenes/MANIFEST-000159 deleted file mode 100644 index 154509d..0000000 Binary files a/packs/scenes/MANIFEST-000159 and /dev/null differ diff --git a/packs/scenes/MANIFEST-000171 b/packs/scenes/MANIFEST-000171 new file mode 100644 index 0000000..82a0cfd Binary files /dev/null and b/packs/scenes/MANIFEST-000171 differ diff --git a/packs/scenes/lost/000169.log b/packs/scenes/lost/000169.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/simples/000237.log b/packs/simples/000237.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/simples/000218.ldb b/packs/simples/000239.ldb similarity index 100% rename from packs/simples/000218.ldb rename to packs/simples/000239.ldb diff --git a/packs/simples/CURRENT b/packs/simples/CURRENT index 449897e..32af177 100644 --- a/packs/simples/CURRENT +++ b/packs/simples/CURRENT @@ -1 +1 @@ -MANIFEST-000223 +MANIFEST-000235 diff --git a/packs/simples/LOG b/packs/simples/LOG index 7c1ceb2..1847e8c 100644 --- a/packs/simples/LOG +++ b/packs/simples/LOG @@ -1,7 +1,11 @@ -2025/07/09-17:43:09.996493 7f2a0d7fa6c0 Recovering log #221 -2025/07/09-17:43:10.006963 7f2a0d7fa6c0 Delete type=3 #219 -2025/07/09-17:43:10.007040 7f2a0d7fa6c0 Delete type=0 #221 -2025/07/09-18:03:48.817353 7f276ffff6c0 Level-0 table #226: started -2025/07/09-18:03:48.817401 7f276ffff6c0 Level-0 table #226: 0 bytes OK -2025/07/09-18:03:48.823494 7f276ffff6c0 Delete type=0 #224 -2025/07/09-18:03:48.830589 7f276ffff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.701807 7f7f2a7fc6c0 Delete type=3 #1 +2025/09/18-17:24:08.983751 7f7f29bff6c0 Level-0 table #238: started +2025/09/18-17:24:08.983779 7f7f29bff6c0 Level-0 table #238: 0 bytes OK +2025/09/18-17:24:09.049421 7f7f29bff6c0 Delete type=0 #236 +2025/09/18-17:24:09.305611 7f7f29bff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at '!items!zs67k4sxCid6oTK3' @ 80 : 1 +2025/09/18-17:24:09.305631 7f7f29bff6c0 Compacting 1@0 + 0@1 files +2025/09/18-17:24:09.339316 7f7f29bff6c0 Generated table #239@0: 36 keys, 20892 bytes +2025/09/18-17:24:09.339411 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 20892 bytes +2025/09/18-17:24:09.404093 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2025/09/18-17:24:09.404255 7f7f29bff6c0 Delete type=2 #218 +2025/09/18-17:24:09.499531 7f7f29bff6c0 Manual compaction at level-0 from '!items!zs67k4sxCid6oTK3' @ 80 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end) diff --git a/packs/simples/LOG.old b/packs/simples/LOG.old index 43364e1..00231f2 100644 --- a/packs/simples/LOG.old +++ b/packs/simples/LOG.old @@ -1,7 +1,4 @@ -2025/07/02-23:06:08.378229 7f0793fff6c0 Recovering log #216 -2025/07/02-23:06:08.459001 7f0793fff6c0 Delete type=3 #214 -2025/07/02-23:06:08.459067 7f0793fff6c0 Delete type=0 #216 -2025/07/02-23:08:13.552198 7f07923ff6c0 Level-0 table #222: started -2025/07/02-23:08:13.552225 7f07923ff6c0 Level-0 table #222: 0 bytes OK -2025/07/02-23:08:13.559173 7f07923ff6c0 Delete type=0 #220 -2025/07/02-23:08:13.565269 7f07923ff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end) +2025/09/18-11:50:45.684906 7f7f2a7fc6c0 Log #233: 0 ops saved to Table #234 OK +2025/09/18-11:50:45.685007 7f7f2a7fc6c0 Archiving /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/simples/000233.log: OK +2025/09/18-11:50:45.685089 7f7f2a7fc6c0 Table #218: 36 entries OK +2025/09/18-11:50:45.688282 7f7f2a7fc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-v13/Data/systems/fvtt-te-deum/packs/simples; recovered 1 files; 20892 bytes. Some data may have been lost. **** diff --git a/packs/simples/MANIFEST-000223 b/packs/simples/MANIFEST-000223 deleted file mode 100644 index 9608b25..0000000 Binary files a/packs/simples/MANIFEST-000223 and /dev/null differ diff --git a/packs/simples/MANIFEST-000235 b/packs/simples/MANIFEST-000235 new file mode 100644 index 0000000..07f8f63 Binary files /dev/null and b/packs/simples/MANIFEST-000235 differ diff --git a/packs/simples/lost/000233.log b/packs/simples/lost/000233.log new file mode 100644 index 0000000..e69de29 diff --git a/templates/actors/actor-sheet.hbs b/templates/actors/actor-sheet.hbs index 988bfef..6b4d8f7 100644 --- a/templates/actors/actor-sheet.hbs +++ b/templates/actors/actor-sheet.hbs @@ -40,30 +40,35 @@