From 710ee545316c05bb4232f5b10ae8c4fa5e8626b7 Mon Sep 17 00:00:00 2001 From: LeRatierBretonnien Date: Thu, 18 Sep 2025 17:24:42 +0200 Subject: [PATCH] Manye enhancements for combat --- images/icons/xpplus1.webp | Bin 0 -> 8344 bytes modules/actors/tedeum-actor-sheet.js | 27 +-- modules/actors/tedeum-actor.js | 136 +++++++++++-- modules/common/tedeum-config.js | 59 ++++-- modules/common/tedeum-utility.js | 86 +++++++-- modules/data/tedeum-schema-blessure.js | 5 +- modules/dialogs/tedeum-roll-dialog.js | 18 +- modules/items/tedeum-item-sheet.js | 3 +- packs/aides/{000122.log => 000134.log} | 0 packs/aides/{000103.ldb => 000136.ldb} | Bin packs/aides/CURRENT | 2 +- packs/aides/LOG | 18 +- packs/aides/LOG.old | 11 +- packs/aides/MANIFEST-000120 | Bin 220 -> 0 bytes packs/aides/MANIFEST-000132 | Bin 0 -> 341 bytes .../000225.log => aides/lost/000130.log} | 0 .../{armures/000224.log => armes/000237.log} | 0 packs/armes/{000206.ldb => 000239.ldb} | Bin packs/armes/CURRENT | 2 +- packs/armes/LOG | 18 +- packs/armes/LOG.old | 11 +- packs/armes/MANIFEST-000223 | Bin 176 -> 0 bytes packs/armes/MANIFEST-000235 | Bin 0 -> 270 bytes .../000221.log => armes/lost/000233.log} | 0 .../000234.log => armures/000236.log} | 0 packs/armures/{000205.ldb => 000238.ldb} | Bin packs/armures/CURRENT | 2 +- packs/armures/LOG | 18 +- packs/armures/LOG.old | 11 +- packs/armures/MANIFEST-000222 | Bin 175 -> 0 bytes packs/armures/MANIFEST-000234 | Bin 0 -> 268 bytes .../000224.log => armures/lost/000232.log} | 0 .../000224.log => competences/000235.log} | 0 packs/competences/{000202.ldb => 000237.ldb} | Bin 38485 -> 38139 bytes packs/competences/CURRENT | 2 +- packs/competences/LOG | 18 +- packs/competences/LOG.old | 11 +- packs/competences/MANIFEST-000219 | Bin 178 -> 0 bytes packs/competences/MANIFEST-000233 | Bin 0 -> 273 bytes .../lost/000229.log} | 0 .../000225.log => education/000246.log} | 0 packs/education/{000231.ldb => 000248.ldb} | Bin packs/education/CURRENT | 2 +- packs/education/LOG | 18 +- packs/education/LOG.old | 18 +- packs/education/MANIFEST-000232 | Bin 178 -> 0 bytes packs/education/MANIFEST-000244 | Bin 0 -> 273 bytes packs/education/lost/000242.log | 0 packs/graces/000236.log | 0 packs/graces/{000205.ldb => 000238.ldb} | Bin packs/graces/CURRENT | 2 +- packs/graces/LOG | 18 +- packs/graces/LOG.old | 11 +- packs/graces/MANIFEST-000222 | Bin 174 -> 0 bytes packs/graces/MANIFEST-000234 | Bin 0 -> 266 bytes packs/graces/lost/000232.log | 0 packs/maladies/000236.log | 0 packs/maladies/{000205.ldb => 000238.ldb} | Bin packs/maladies/CURRENT | 2 +- packs/maladies/LOG | 18 +- packs/maladies/LOG.old | 11 +- packs/maladies/MANIFEST-000222 | Bin 173 -> 0 bytes packs/maladies/MANIFEST-000234 | Bin 0 -> 264 bytes packs/maladies/lost/000232.log | 0 packs/scenes/000173.log | 0 packs/scenes/{000142.ldb => 000175.ldb} | Bin packs/scenes/CURRENT | 2 +- packs/scenes/LOG | 18 +- packs/scenes/LOG.old | 11 +- packs/scenes/MANIFEST-000159 | Bin 176 -> 0 bytes packs/scenes/MANIFEST-000171 | Bin 0 -> 269 bytes packs/scenes/lost/000169.log | 0 packs/simples/000237.log | 0 packs/simples/{000218.ldb => 000239.ldb} | Bin packs/simples/CURRENT | 2 +- packs/simples/LOG | 18 +- packs/simples/LOG.old | 11 +- packs/simples/MANIFEST-000223 | Bin 174 -> 0 bytes packs/simples/MANIFEST-000235 | Bin 0 -> 266 bytes packs/simples/lost/000233.log | 0 templates/actors/actor-sheet.hbs | 98 +++++----- templates/chat/chat-blessure-result.hbs | 104 ++++++++-- templates/chat/chat-degats-result.hbs | 43 +++-- templates/chat/chat-generic-result.hbs | 180 ++++++++++-------- templates/chat/chat-opposition-result.hbs | 23 ++- templates/dialogs/roll-dialog-generic.hbs | 75 +++++--- 86 files changed, 735 insertions(+), 408 deletions(-) create mode 100644 images/icons/xpplus1.webp rename packs/aides/{000122.log => 000134.log} (100%) rename packs/aides/{000103.ldb => 000136.ldb} (100%) delete mode 100644 packs/aides/MANIFEST-000120 create mode 100644 packs/aides/MANIFEST-000132 rename packs/{armes/000225.log => aides/lost/000130.log} (100%) rename packs/{armures/000224.log => armes/000237.log} (100%) rename packs/armes/{000206.ldb => 000239.ldb} (100%) delete mode 100644 packs/armes/MANIFEST-000223 create mode 100644 packs/armes/MANIFEST-000235 rename packs/{competences/000221.log => armes/lost/000233.log} (100%) rename packs/{education/000234.log => armures/000236.log} (100%) rename packs/armures/{000205.ldb => 000238.ldb} (100%) delete mode 100644 packs/armures/MANIFEST-000222 create mode 100644 packs/armures/MANIFEST-000234 rename packs/{graces/000224.log => armures/lost/000232.log} (100%) rename packs/{maladies/000224.log => competences/000235.log} (100%) rename packs/competences/{000202.ldb => 000237.ldb} (80%) delete mode 100644 packs/competences/MANIFEST-000219 create mode 100644 packs/competences/MANIFEST-000233 rename packs/{scenes/000161.log => competences/lost/000229.log} (100%) rename packs/{simples/000225.log => education/000246.log} (100%) rename packs/education/{000231.ldb => 000248.ldb} (100%) delete mode 100644 packs/education/MANIFEST-000232 create mode 100644 packs/education/MANIFEST-000244 create mode 100644 packs/education/lost/000242.log create mode 100644 packs/graces/000236.log rename packs/graces/{000205.ldb => 000238.ldb} (100%) delete mode 100644 packs/graces/MANIFEST-000222 create mode 100644 packs/graces/MANIFEST-000234 create mode 100644 packs/graces/lost/000232.log create mode 100644 packs/maladies/000236.log rename packs/maladies/{000205.ldb => 000238.ldb} (100%) delete mode 100644 packs/maladies/MANIFEST-000222 create mode 100644 packs/maladies/MANIFEST-000234 create mode 100644 packs/maladies/lost/000232.log create mode 100644 packs/scenes/000173.log rename packs/scenes/{000142.ldb => 000175.ldb} (100%) delete mode 100644 packs/scenes/MANIFEST-000159 create mode 100644 packs/scenes/MANIFEST-000171 create mode 100644 packs/scenes/lost/000169.log create mode 100644 packs/simples/000237.log rename packs/simples/{000218.ldb => 000239.ldb} (100%) delete mode 100644 packs/simples/MANIFEST-000223 create mode 100644 packs/simples/MANIFEST-000235 create mode 100644 packs/simples/lost/000233.log diff --git a/images/icons/xpplus1.webp b/images/icons/xpplus1.webp new file mode 100644 index 0000000000000000000000000000000000000000..8eef03e10caab9a9cb72e788e04a2dbcc4addbd1 GIT binary patch literal 8344 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 { 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 1668b4e577669b1592961fdf6a5fdd53dba39bcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmcbc?0<4Q10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei18!g<@8IX;EHcj$T1x zdTOy^sb9HQdZtNsgp+e-RIa0kUVdJNU#LNDM23GsieHqM8>1ux7_c*@PmooF>Bi8< lC=F3Yw)rJaf&Cl|j7*iB49rz5(r5E8_kg%nKyD3-Gyr!UK#l+a diff --git a/packs/aides/MANIFEST-000132 b/packs/aides/MANIFEST-000132 new file mode 100644 index 0000000000000000000000000000000000000000..c9a5ceddd680f7c4ac536849fa57642eab5ab3d4 GIT binary patch literal 341 zcmezIXqjmZ10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei1uE`UF`;#jO0&qP)Z$ z#Ztd=uk=il><+ HY3d^YN={&4 literal 0 HcmV?d00001 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 33c9fe248e93761149f74974aaa6f83c7b3c42cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmXqwSvjShfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDVUNN&IHMdx?yu#BX zyQt98A~n!B*}trS(USoT*cs0;_J3hiR7}gyNl7g#R`kqs4onRRN(nK|itvrFFk)ne lC?sSMXXwo^E(S)X2aKEy%nun^JfohwGl2vif&?A|1pr!kFfsrD diff --git a/packs/armes/MANIFEST-000235 b/packs/armes/MANIFEST-000235 new file mode 100644 index 0000000000000000000000000000000000000000..eca0ff739fc1b3fdb2ad6d2352ef037767875cf0 GIT binary patch literal 270 zcmX>yX?s>G10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei1vvImZ4kjEahB`8g@6 zMa7DqdCq~UAwel2rdbib5f(;_%nV>4ub5eqnp><`Ug7DHT~ugkks4^6>|a*E=n0XJ zU9m%$i-D2p4I?K5^IJw1Pd+g%Tadt8kidJOz{lOk0xMwxAAka^41^421G 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 951b99776aeea6063ab3a81b37fc1a4db824d148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmZ?&r9Hikfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDVUNN&IHMdx?G_5Qn z+}$+Hq9DScu&5-6(To8M*cs0_DJ$xIINuJZGDWn_k^ lBV`pgoS$2eSd>_jU&PLEmhpU?qGDQpPD*M~ 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 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 1f77f8f1d952c13b0628c708a3633ccd0eb191a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmcb7&)K-0fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDVUNN&IHMdx?vce?W zJSWh@Jvl$u(lR%j@ht-wurr=wyt;--Q86t)CndG0Skc5kAR{xqDmkFc#H=tWJe-jg nqL7e5Cq!Q5b2Bh9-C^WpV7|-9@|N+Vr@T5y#cN z78NU+_y=TUrdK5gl$n?nCWVJHvNC{yykcfaYHqP&Wraz$c}}2*dvboRrDbk5<6DUQ zn}82LxEUCkUNLeqFu!JGdCTaxyNVSg@){)a79_$Tu2NA26L|*`VPzm>E*sE+?2K=z G<46F6TTjCP literal 0 HcmV?d00001 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 7ee776a98cdbad3dbfeae1bff09412b1f9692044..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmb2S%eSMQfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDVUNN&IHMdwXB`L=| zIVZI$IKnfyDyPtu@joL22(U9gXY8IRps1LZpOcbWRIF$j5SVG~Q)X&XRFGVeSeDON z3{eO(sLDMjs3gF=DmX7YtF*KS(;gL7r1W#iM#@d Iya9;-0H8=Tj{pDw diff --git a/packs/education/MANIFEST-000244 b/packs/education/MANIFEST-000244 new file mode 100644 index 0000000000000000000000000000000000000000..2f309240a46da465233b3b6518fcdb5d4b65fd32 GIT binary patch literal 273 zcmd-x51Eq6z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMvoUwbNfTChreojhi zQL& 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 acf65ecf0685490dc5b1d64706cb90923a57768d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmey=K67F#10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei18!ykcfaYHqP&RcNGV zn188TK~QOtWujvcV=e<2urr=zyfTLorp(YhH><2X*doZ-$;>Aw-<{DGq6{XF%b3F_ g8Pd2I7@6)faxySKU}VV^^478d2|NG^JOT;;0Dqq_UH||9 diff --git a/packs/graces/MANIFEST-000234 b/packs/graces/MANIFEST-000234 new file mode 100644 index 0000000000000000000000000000000000000000..57c423d4e1c8cf9976dfd64d2aaef88200321e9b GIT binary patch literal 266 zcmWIc4nL60z{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PLEmhs9QMtQ}|lGNN{ zMMLx4tg`Z8iy&hsGoPG%cSc(VFo4Ndg+_XY`IovC1eF$9COQT&=0fBnjY{>n7#Nve wGjcL8zhPv_O(DF?7L^(|0Jy3v^fsmnWK)10ozN3cw03X{)761SM literal 0 HcmV?d00001 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 7e9abad0c32ca8ddd8f3b7228a341855c0c9cadf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcma#H^nTvLz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&P8Fub5eqnp><`S?r#g z5t(ZkmhBr}7bT8xp diff --git a/packs/maladies/MANIFEST-000234 b/packs/maladies/MANIFEST-000234 new file mode 100644 index 0000000000000000000000000000000000000000..cee291f0605bf982378b852e771791f0258810b9 GIT binary patch literal 264 zcmX@LZ|;XA21Z7yoYb<^oRlOzr^=Gl^338?=ltA)#G=HK{33RSvy6Wu;Q#;t literal 0 HcmV?d00001 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 154509df972559dbd3021c73d5f8127deb676ec2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmd<#W^Qa}U}TiaNi9pwNlDUksw_z@&n!-L&d)7KEJ`fNFJfg-P%KVP%}Xs-bn}WR zO;1V6b}Df7a!m;`V`OCj19rwf#sgdgl@U~sP~|`0ssZqEieE8 diff --git a/packs/scenes/MANIFEST-000171 b/packs/scenes/MANIFEST-000171 new file mode 100644 index 0000000000000000000000000000000000000000..82a0cfd9f889e23fc9d791cb9d46b88a3b9d6eca GIT binary patch literal 269 zcmZ2bR>+gWz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PMP$9RBCL9sYFH7~VT z(akHOG(9CL+o{0S%QYp)jFFWA3 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 9608b256513cd7da92f7a7774fd0e056c451d9c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmaDEb9`Sb10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei18!ykcfaYHqP&l~Z_@ zaaq2pTe7Enq+38RV;}<TCdq6{WqRcvOS xZBks}oS9;lAL4Dy7yyxfylb^P7Xu^H14d2;=7)?dp%V;kKY|1vf&?A|1pr3&FwFn} diff --git a/packs/simples/MANIFEST-000235 b/packs/simples/MANIFEST-000235 new file mode 100644 index 0000000000000000000000000000000000000000..07f8f63d5d11c478fd162528734ef3ff9e90f394 GIT binary patch literal 266 zcmWex`pgoS$2eSd>_jU&PLEi*e3kMtQ}|lGNN{ zMZ+XVA0ywuu!1nB6oX{bC`MfdFo4Nd6`Pr7n-o_#XQr6thj<$^20-Mee>%&=#lXn) xhLMwj`7I+$=#%OgJ&?d#kidJOfLHIw#B!Lx2cQ5e10h4%fNo=Fd`}Jc0RSQ1M+E=? literal 0 HcmV?d00001 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 @@
-
    - {{#each caracList as |char key|}} -
  • - - - - - -
  • - {{/each}} -
+
    + {{#each caracList as |char key|}} +
  • + + + + + +
  • + {{/each}} +
-
-

Malus de santé : {{santeModifier}} niveaux

-
+
+

Malus de santé : {{santeModifier}} niveaux

+
-
    +
    • +
      + +
      +
    • {{#each blessures as |blessure key|}}
    • @@ -140,7 +145,8 @@
      • - + + - +
      • -  /  - +  /  +
      • @@ -172,7 +183,7 @@
         
        + class="fas fa-plus">
        {{#each graces as |grace key|}} @@ -206,17 +217,18 @@
         
        -
        - -
        +
        + +
          {{#each carac.competences as |comp skillkey|}} @@ -267,11 +279,13 @@ {{upperFirst arme.system.typeArme}} {{upperFirst arme.system.competence}} - {{arme.system.degats}} + {{arme.system.degats}}
           
          - + @@ -297,7 +311,8 @@
           
          - + @@ -318,12 +333,12 @@

          {{loc.score.min}}-{{loc.score.max}}. {{loc.label}}

          {{#each loc.armures as |armure idx| }} - {{armure.name}} ({{armure.system.protection}}) + {{armure.name}} ({{armure.system.protection}}) {{/each}} Touché : {{touche}} Blessures : {{#each loc.blessures as |blessure idx| }} - {{blessure.name}} ({{blessure.malus}}) + {{blessure.name}} ({{blessure.malus}}) {{/each}}
          @@ -397,8 +412,7 @@
           
          - +
          {{#each simples as |simple key|}} @@ -415,7 +429,7 @@
          {{/each}} -
        +
      @@ -428,7 +442,7 @@
    • @@ -438,8 +452,7 @@
    • - +
    • @@ -462,8 +475,7 @@
    • - +
diff --git a/templates/chat/chat-blessure-result.hbs b/templates/chat/chat-blessure-result.hbs index 4d84f19..6f7eb30 100644 --- a/templates/chat/chat-blessure-result.hbs +++ b/templates/chat/chat-blessure-result.hbs @@ -5,27 +5,89 @@

{{alias}}

-
- - {{#if img}} -
- {{name}} -
- {{/if}} +
-
-
+{{#if img}} +
+ {{name}} +
+{{/if}} -
-
    - {{#if blessure}} -
  • {{defenderName}} a subi une blessure!
  • -
  • Gravité : {{blessure.name}}
  • -
  • Localisation : {{loc.label}}
  • - {{else}} -
  • Aucune blessure subie par {{defenderName}}
  • - {{/if}} -
-
+
+
- +
+
    + {{#if arme}} + + {{/if}} + {{#if loc}} +
  • Localisation : {{loc.label}}
  • +
  • Touché : {{touche}}
  • + {{/if}} + + {{#if gantelet}} +
  • Poing avec gantelet: +1 dégat
  • + {{/if}} + + {{#if isChargeAPied}} +
  • Charge à pied (+Course)
  • + {{/if}} + {{#if isChargeACheval}} +
  • Charge à cheval (+Equitation)
  • + {{/if}} + + {{#if isReussiteCritique}} +
  • Réussite critique : La blessure a été augmentée d'un niveau
  • + {{/if}} + {{#if blessure}} +
  • {{defenderName}} a subi une blessure!
  • +
  • Gravité : {{blessure.name}}
  • + + + {{#if (eq loc.categorie "tete")}} + {{#if (gt blessure.system.value 0)}} +
  • {{alias}} doit réussir un test d'Endurance de difficulté 7 ou être + assomé
  • + {{/if}} + {{/if}} + + {{#if (eq loc.categorie "bras")}} + {{#if (gt blessure.system.value 2)}} +
  • {{alias}} lache l'objet tenu par son bras. Il doit faire un test d'endurance + pour l'utiliser désormais.
  • + {{/if}} + {{/if}} + + {{#if (eq loc.categorie "jambe")}} + {{#if (gt blessure.system.value 2)}} +
  • {{alias}} tombe au sol. Pour se relever et marcher, il doit réussir un test + d'Endurance à chaque tour. +
  • + {{/if}} + {{/if}} + + {{#if (eq loc.categorie "main")}} + {{#if (gt blessure.system.value 1)}} +
  • {{alias}} lache l'objet tenu par sa main. Il doit faire un test d'endurance + pour l'utiliser désormais.
  • + {{/if}} + {{/if}} + + {{#if (eq loc.categorie "pied")}} + {{#if (gt blessure.system.value 1)}} +
  • {{alias}} tombe au sol. Pour se relever et marcher, il doit réussir un test + d'Endurance à chaque tour. +
  • + {{/if}} + {{/if}} + + + {{else}} +
  • Aucune blessure subie par {{defenderName}}
  • + {{/if}} + +
+
+ + \ No newline at end of file diff --git a/templates/chat/chat-degats-result.hbs b/templates/chat/chat-degats-result.hbs index 50941d2..3b9f973 100644 --- a/templates/chat/chat-degats-result.hbs +++ b/templates/chat/chat-degats-result.hbs @@ -5,19 +5,34 @@

{{alias}}

-
- - {{#if img}} -
- {{name}} -
- {{/if}} +
-
-
    -
  • Dégats de {{arme.name}}: {{formula}}
  • -
  • Dégats infligés : {{degats}}
  • -
-
+{{#if img}} +
+ {{name}} +
+{{/if}} - +
+
    +
  • Dégats de {{arme.name}}: {{formula}}
  • + {{#if gantelet}} +
  • Poing avec gantelet: +1 dégat
  • + {{/if}} + {{#if isChargeAPied}} +
  • Charge à pied (+Course)
  • + {{/if}} + {{#if isChargeACheval}} +
  • Charge à cheval (+Equitation)
  • + {{/if}} +
  • Dégats infligés : {{degats}}
  • + {{#if loc}} +
  • Localisation : {{loc.label}}
  • + {{/if}} + {{#if isReussiteCritique}} +
  • Réussite critique : La blessure sera augmentée d'un niveau
  • + {{/if}} +
+
+ + \ No newline at end of file diff --git a/templates/chat/chat-generic-result.hbs b/templates/chat/chat-generic-result.hbs index d575d64..b8af758 100644 --- a/templates/chat/chat-generic-result.hbs +++ b/templates/chat/chat-generic-result.hbs @@ -5,92 +5,122 @@

{{alias}}

-
+
- {{#if img}} -
- {{name}} -
- {{/if}} +{{#if img}} +
+ {{name}} +
+{{/if}} -
-
+
+
-
-
    - {{#if carac}} -
  • {{carac.name}}: {{carac.qualite}} ({{carac.dice}})
  • - {{/if}} - {{#if competence}} -
  • {{competence.name}}: {{compScore}}
  • - {{/if}} - {{#if bonusMalus}} -
  • Bonus/Malus: {{bonusMalus}}
  • - {{/if}} - {{#if santeModifier}} -
  • Santé: {{santeModifier}} niveaux
  • - {{/if}} - {{#if enableProvidence}} -
  • Un niveau de Providence a été utilisé !
  • - {{/if}} - {{#if isViser}} -
  • Bonus de visée (+1 niveau)
  • - {{/if}} - {{#if isMouvement}} -
  • Malus de cible petite ou en mouvement (-1 niveau)
  • - {{/if}} +
    +
      + {{#if carac}} +
    • {{carac.name}}: {{carac.qualite}} ({{carac.dice}})
    • + {{/if}} + {{#if competence}} +
    • {{competence.name}}: {{compScore}}
    • + {{/if}} + {{#if bonusMalus}} +
    • Bonus/Malus: {{bonusMalus}}
    • + {{/if}} + {{#if santeModifier}} +
    • Santé: {{santeModifier}} niveaux
    • + {{/if}} + {{#if enableProvidence}} +
    • Un niveau de Providence a été utilisé !
    • + {{/if}} + {{#if isViser}} +
    • Bonus de visée (+1 niveau)
    • + {{/if}} + {{#if isMouvement}} +
    • Malus de cible petite ou en mouvement (-1 niveau)
    • + {{/if}} + {{#if attaqueCiblee}} +
    • Attaque ciblée, -1 niveau
    • + {{/if}} + {{#if allongeMalus}} +
    • Malus d'allonge: {{allongeMalus}} niveau
    • + {{/if}} -
    • Dés: {{diceFormula}}
    • - {{#if isTir}} -
    • Portée: {{porteeLabel}} ( {{difficulty}} )
    • - {{else}} -
    • Difficulté: {{difficulty}}
    • - {{/if}} +
    • Dés: {{diceFormula}}
    • + {{#if isTir}} +
    • Portée: {{porteeLabel}} ( {{difficulty}} )
    • + {{else}} +
    • Difficulté: {{difficulty}}
    • + {{/if}} -
    -
    +
+
-
-
    -
  • Résultat: {{total}}
  • - {{#if isSuccess}} -
  • Succès !
  • - {{#if isReussiteCritique}} -
  • Réussite critique ! 1 XP gagné en {{carac.name}}.
  • - {{/if}} +
    +
      +
    • Résultat: {{total}}
    • + {{#if isSuccess}} +
    • Succès !
    • + {{#if isReussiteCritique}} +
    • + Réussite critique (XP potentiel) ! +
    • + {{/if}} - {{#if arme}} -
    • Attaque réussie ! Faites une opposition avec la défense de la cible ou appliquez directement les dégats.
    • - {{/if}} + {{#if arme}} +
    • Attaque réussie ! Faites une opposition avec la défense de la cible ou appliquez directement + les dégats.
    • + {{/if}} - {{else}} -
    • Echec !
    • - {{#if isEchecCritique}} -
    • Echec critique ! 1 XP gagné en {{carac.name}}.
    • - {{/if}} - {{/if}} + {{else}} +
    • Echec !
    • + {{#if isEchecCritique}} +
    • + Echec critique (XP potentiel) ! +
    • + {{/if}} + {{/if}} - {{#if loc}} -
    • Attaque réussie !!
    • -
    • Localisation: {{loc.label}}
    • -
    • Dégats: {{degats}} {{#if isReussiteCritique}}(Augmentez la gravité de la blessure d'un niveau){{/if}}
    • - {{/if}} -
    -
    - - - + {{#if nbEsquives}} +
  • Rappel : vous devez réussir {{nbEsquives}} tests d'esquive pour arriver au contact (règle d'allonge des armes). +
  • + {{/if}} - {{#if arme}} - {{#if isSuccess}} - - - - {{/if}} - {{/if}} + {{#if loc}} +
  • Attaque réussie !!
  • +
  • Localisation: {{loc.label}}
  • + {{/if}} + {{#if degats}} +
  • Dégats: {{degats}} {{#if isReussiteCritique}}(Augmentez la gravité de la blessure d'un niveau){{/if}}
  • + {{/if}} + +
+
+ + {{#if (or isEchecCritique isReussiteCritique)}} + + + + {{/if}} + + + + + + {{#if arme}} + {{#if isSuccess}} + + + + {{/if}} + {{/if}} -
-
+ + + \ No newline at end of file diff --git a/templates/chat/chat-opposition-result.hbs b/templates/chat/chat-opposition-result.hbs index 907fdc8..78cd35b 100644 --- a/templates/chat/chat-opposition-result.hbs +++ b/templates/chat/chat-opposition-result.hbs @@ -1,15 +1,22 @@
{{winner.alias}} - + {{looser.alias}} - + +
-
+
-
- -
- - \ No newline at end of file +
+ + {{#if winner.isReussiteCritique}} +
Réussite critique ! 1 XP gagné en {{winner.carac.name}}.
+ {{/if}} + {{#if looser.isEchecCritique}} +
Echec critique ! 1 XP gagné en {{looser.carac.name}}.
+ {{/if}} +
\ No newline at end of file diff --git a/templates/dialogs/roll-dialog-generic.hbs b/templates/dialogs/roll-dialog-generic.hbs index d9d1341..5b5c82f 100644 --- a/templates/dialogs/roll-dialog-generic.hbs +++ b/templates/dialogs/roll-dialog-generic.hbs @@ -41,33 +41,58 @@ {{/if}} {{#if arme}} - {{#if isTir}} -
- Portée : - -
-
- Viser : - -
-
- Cible petite/en mouvement : - -
- {{else}} - - {{/if}} + {{#if isTir}} +
+ Portée : + +
+
+ Viser : + +
+
+ Cible petite/en mouvement : + +
{{else}}
- Difficulté : - + {{#select allongeId}} + {{#each allonges as |allonge key|}} + + {{/each}} + {{/select}} +
+
+ Charge à pied ? + +
+
+ Charge à cheval ? + +
+ {{/if}} +
+ Attaque ciblée (-1 Niveau): +
{{/if}}