From d647fcc35e25ff7982a3738d49b8c2e4a298f026 Mon Sep 17 00:00:00 2001 From: LeRatierBretonnien Date: Thu, 1 May 2025 08:48:02 +0200 Subject: [PATCH] Foundry v13 migration --- modules/malefices-actor-sheet.js | 32 ++++---- modules/malefices-commands.js | 6 +- modules/malefices-item-sheet.js | 10 +-- modules/malefices-main.js | 13 ++-- modules/malefices-npc-sheet.js | 30 ++++---- modules/malefices-roll-dialog.js | 13 ++-- modules/malefices-tirage-tarot-dialog.js | 22 +++--- modules/malefices-utility.js | 82 ++++++++++++--------- packs/malefices-archetypes/000031.log | 0 packs/malefices-archetypes/000035.log | Bin 0 -> 128850 bytes packs/malefices-archetypes/CURRENT | 2 +- packs/malefices-archetypes/LOG | 17 +---- packs/malefices-archetypes/LOG.old | 15 +++- packs/malefices-archetypes/MANIFEST-000029 | Bin 330 -> 0 bytes packs/malefices-archetypes/MANIFEST-000034 | Bin 0 -> 154 bytes packs/malefices-armes/000031.log | 0 packs/malefices-armes/000035.log | Bin 0 -> 6429 bytes packs/malefices-armes/CURRENT | 2 +- packs/malefices-armes/LOG | 17 +---- packs/malefices-armes/LOG.old | 15 +++- packs/malefices-armes/MANIFEST-000029 | Bin 327 -> 0 bytes packs/malefices-armes/MANIFEST-000034 | Bin 0 -> 153 bytes packs/malefices-macros/000031.log | 0 packs/malefices-macros/000035.log | Bin 0 -> 1744 bytes packs/malefices-macros/CURRENT | 2 +- packs/malefices-macros/LOG | 17 +---- packs/malefices-macros/LOG.old | 15 +++- packs/malefices-macros/MANIFEST-000029 | Bin 334 -> 0 bytes packs/malefices-macros/MANIFEST-000034 | Bin 0 -> 156 bytes packs/malefices-tarots/000031.log | 0 packs/malefices-tarots/000035.log | Bin 0 -> 15201 bytes packs/malefices-tarots/CURRENT | 2 +- packs/malefices-tarots/LOG | 17 +---- packs/malefices-tarots/LOG.old | 15 +++- packs/malefices-tarots/MANIFEST-000029 | Bin 327 -> 0 bytes packs/malefices-tarots/MANIFEST-000034 | Bin 0 -> 153 bytes styles/simple.css | 29 ++++---- system.json | 44 +++++++---- templates/actors/actor-sheet.hbs | 22 +++--- templates/dialogs/roll-dialog-generic.hbs | 22 +++--- 40 files changed, 249 insertions(+), 212 deletions(-) delete mode 100644 packs/malefices-archetypes/000031.log create mode 100644 packs/malefices-archetypes/000035.log delete mode 100644 packs/malefices-archetypes/MANIFEST-000029 create mode 100644 packs/malefices-archetypes/MANIFEST-000034 delete mode 100644 packs/malefices-armes/000031.log create mode 100644 packs/malefices-armes/000035.log delete mode 100644 packs/malefices-armes/MANIFEST-000029 create mode 100644 packs/malefices-armes/MANIFEST-000034 delete mode 100644 packs/malefices-macros/000031.log create mode 100644 packs/malefices-macros/000035.log delete mode 100644 packs/malefices-macros/MANIFEST-000029 create mode 100644 packs/malefices-macros/MANIFEST-000034 delete mode 100644 packs/malefices-tarots/000031.log create mode 100644 packs/malefices-tarots/000035.log delete mode 100644 packs/malefices-tarots/MANIFEST-000029 create mode 100644 packs/malefices-tarots/MANIFEST-000034 diff --git a/modules/malefices-actor-sheet.js b/modules/malefices-actor-sheet.js index 3c009be..bb57f59 100644 --- a/modules/malefices-actor-sheet.js +++ b/modules/malefices-actor-sheet.js @@ -6,7 +6,7 @@ import { MaleficesUtility } from "./malefices-utility.js"; /* -------------------------------------------- */ -export class MaleficesActorSheet extends ActorSheet { +export class MaleficesActorSheet extends foundry.appv1.sheets.ActorSheet { /** @override */ static get defaultOptions() { @@ -44,9 +44,9 @@ export class MaleficesActorSheet extends ActorSheet { phyMalus: this.actor.getPhysiqueMalus(), elementsbio: this.actor.getElementsBio(), sorts: this.actor.getSorts(), - description: await TextEditor.enrichHTML(this.object.system.biodata.description, { async: true }), - notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, { async: true }), - equipementlibre: await TextEditor.enrichHTML(this.object.system.equipementlibre, { async: true }), + description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, { async: true }), + notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.notes, { async: true }), + equipementlibre: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.equipementlibre, { async: true }), options: this.options, owner: this.document.isOwner, editScore: this.options.editScore, @@ -66,10 +66,10 @@ export class MaleficesActorSheet extends 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 if (e.keyCode === 13) return false; - }); + }); // Update Inventory Item html.find('.item-edit').click(ev => { @@ -87,14 +87,14 @@ export class MaleficesActorSheet extends ActorSheet { let dataType = $(ev.currentTarget).data("type") this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { 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 ); actor.sheet.render(true); }); - + html.find('.subactor-delete').click(ev => { const li = $(ev.currentTarget).parents(".item"); let actorId = li.data("actor-id"); @@ -117,38 +117,38 @@ export class MaleficesActorSheet extends ActorSheet { const li = $(event.currentTarget).parents(".item") this.actor.incDecAmmo( li.data("item-id"), +1 ) } ); - + html.find('.roll-attribut').click((event) => { let attrKey = $(event.currentTarget).data("attr-key") this.actor.rollAttribut(attrKey) - }); + }); html.find('.roll-arme').click((event) => { const armeId = $(event.currentTarget).data("arme-id") this.actor.rollArme(armeId) }); - + html.find('.lock-unlock-sheet').click((event) => { this.options.editScore = !this.options.editScore; this.render(true); - }); + }); html.find('.item-link a').click((event) => { const itemId = $(event.currentTarget).data("item-id"); const item = this.actor.getOwnedItem(itemId); item.sheet.render(true); - }); + }); html.find('.item-equip').click(ev => { const li = $(ev.currentTarget).parents(".item"); this.actor.equipItem( li.data("item-id") ); - this.render(true); + 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 } ); - }); + }); } - + /* -------------------------------------------- */ /** @override */ setPosition(options = {}) { diff --git a/modules/malefices-commands.js b/modules/malefices-commands.js index 31d482d..adc2e95 100644 --- a/modules/malefices-commands.js +++ b/modules/malefices-commands.js @@ -80,7 +80,7 @@ export class MaleficesCommands { console.log("===> Processing command") let command = commandsTable[name]; path = path + name + " "; - if (command && command.subTable) { + if (command?.subTable) { if (params[0]) { return this._processCommand(command.subTable, params[0], params.slice(1), content, msg, path) } @@ -89,7 +89,7 @@ export class MaleficesCommands { return true; } } - if (command && command.func) { + if (command?.func) { const result = command.func(content, msg, params); if (result == false) { CrucibleCommands._chatAnswer(msg, command.descr); @@ -140,7 +140,7 @@ export class MaleficesCommands { selectedCard.system.isgm = false selectedCard.value = (selectedCard.system.ispositif)? selectedCard.system.numericvalueup : selectedCard.system.numericvaluedown MaleficesUtility.createChatMessage(game.user.name, "", { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) + content: await foundry.applications.handlebars.renderTemplates(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) }) } diff --git a/modules/malefices-item-sheet.js b/modules/malefices-item-sheet.js index 68aaa56..0d0846e 100644 --- a/modules/malefices-item-sheet.js +++ b/modules/malefices-item-sheet.js @@ -4,7 +4,7 @@ import { MaleficesUtility } from "./malefices-utility.js"; * Extend the basic ItemSheet with some very simple modifications * @extends {ItemSheet} */ -export class MaleficesItemSheet extends ItemSheet { +export class MaleficesItemSheet extends foundry.appv1.sheets.ItemSheet { /** @override */ static get defaultOptions() { @@ -48,15 +48,15 @@ export class MaleficesItemSheet extends ItemSheet { limited: this.object.limited, options: this.options, owner: this.document.isOwner, - description: await TextEditor.enrichHTML(this.object.system.description, { async: true }), - notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }), + description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }), + notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }), isGM: game.user.isGM } if ( this.object.type == "archetype") { formData.tarots = MaleficesUtility.getTarots() } - + this.options.editable = !(this.object.origin == "embeddedItem"); console.log("ITEM DATA", formData, this); return formData; @@ -102,7 +102,7 @@ export class MaleficesItemSheet extends ItemSheet { let levelIndex = Number($(ev.currentTarget).parents(".item").data("level-index")) let choiceIndex = Number($(ev.currentTarget).parents(".item").data("choice-index")) let featureId = $(ev.currentTarget).parents(".item").data("feature-id") - + let itemData = this.object.system.levels[levelIndex].choices[choiceIndex].features[featureId] if (itemData.name != 'None') { diff --git a/modules/malefices-main.js b/modules/malefices-main.js index 9aa2019..8b76e91 100644 --- a/modules/malefices-main.js +++ b/modules/malefices-main.js @@ -39,7 +39,7 @@ Hooks.once("init", async function () { MaleficesUtility.preloadHandlebarsTemplates(); /* -------------------------------------------- */ - // Set an initiative formula for the system + // Set an initiative formula for the system CONFIG.Combat.initiative = { formula: "1d6", decimals: 1 @@ -58,12 +58,12 @@ Hooks.once("init", async function () { /* -------------------------------------------- */ // Register sheet application classes - Actors.unregisterSheet("core", ActorSheet); - Actors.registerSheet("fvtt-malefices", MaleficesActorSheet, { types: ["personnage"], makeDefault: true }); - Actors.registerSheet("fvtt-malefices", MaleficesNPCSheet, { types: ["pnj"], makeDefault: false }); + foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet); + foundry.documents.collections.Actors.registerSheet("fvtt-malefices", MaleficesActorSheet, { types: ["personnage"], makeDefault: true }); + foundry.documents.collections.Actors.registerSheet("fvtt-malefices", MaleficesNPCSheet, { types: ["pnj"], makeDefault: false }); - Items.unregisterSheet("core", ItemSheet); - Items.registerSheet("fvtt-malefices", MaleficesItemSheet, { makeDefault: true }); + foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet); + foundry.documents.collections.Items.registerSheet("fvtt-malefices", MaleficesItemSheet, { makeDefault: true }); MaleficesUtility.init() @@ -119,4 +119,3 @@ Hooks.on("chatMessage", (html, content, msg) => { } return true; }); - diff --git a/modules/malefices-npc-sheet.js b/modules/malefices-npc-sheet.js index d122913..5738e02 100644 --- a/modules/malefices-npc-sheet.js +++ b/modules/malefices-npc-sheet.js @@ -6,7 +6,7 @@ import { MaleficesUtility } from "./malefices-utility.js"; /* -------------------------------------------- */ -export class MaleficesNPCSheet extends ActorSheet { +export class MaleficesNPCSheet extends foundry.appv1.sheets.ActorSheet { /** @override */ static get defaultOptions() { @@ -71,10 +71,10 @@ export class MaleficesNPCSheet extends 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 if (e.keyCode === 13) return false; - }); + }); // Update Inventory Item html.find('.item-edit').click(ev => { @@ -92,17 +92,17 @@ export class MaleficesNPCSheet extends ActorSheet { let dataType = $(ev.currentTarget).data("type") this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { renderSheet: true }) }) - + html.find('.equip-activate').click(ev => { const li = $(ev.currentTarget).parents(".item") let itemId = li.data("item-id") this.actor.equipActivate( itemId) - }); + }); html.find('.equip-deactivate').click(ev => { const li = $(ev.currentTarget).parents(".item") let itemId = li.data("item-id") this.actor.equipDeactivate( itemId) - }); + }); html.find('.subactor-edit').click(ev => { const li = $(ev.currentTarget).parents(".item"); @@ -110,7 +110,7 @@ export class MaleficesNPCSheet extends ActorSheet { let actor = game.actors.get( actorId ); actor.sheet.render(true); }); - + html.find('.subactor-delete').click(ev => { const li = $(ev.currentTarget).parents(".item"); let actorId = li.data("actor-id"); @@ -133,7 +133,7 @@ export class MaleficesNPCSheet extends ActorSheet { const li = $(event.currentTarget).parents(".item") this.actor.incDecAmmo( li.data("item-id"), +1 ) } ); - + html.find('.roll-ability').click((event) => { const abilityKey = $(event.currentTarget).data("ability-key"); this.actor.rollAbility(abilityKey); @@ -142,7 +142,7 @@ export class MaleficesNPCSheet extends ActorSheet { const li = $(event.currentTarget).parents(".item") const skillId = li.data("item-id") this.actor.rollSkill(skillId) - }); + }); html.find('.roll-weapon').click((event) => { const li = $(event.currentTarget).parents(".item"); @@ -163,28 +163,28 @@ export class MaleficesNPCSheet extends ActorSheet { const saveKey = $(event.currentTarget).data("save-key") this.actor.rollSave(saveKey) }); - - + + html.find('.lock-unlock-sheet').click((event) => { this.options.editScore = !this.options.editScore; this.render(true); - }); + }); html.find('.item-link a').click((event) => { const itemId = $(event.currentTarget).data("item-id"); const item = this.actor.getOwnedItem(itemId); item.sheet.render(true); - }); + }); html.find('.item-equip').click(ev => { const li = $(ev.currentTarget).parents(".item"); this.actor.equipItem( li.data("item-id") ); - this.render(true); + 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 } ); - }); + }); } diff --git a/modules/malefices-roll-dialog.js b/modules/malefices-roll-dialog.js index 3ee79cb..852dc61 100644 --- a/modules/malefices-roll-dialog.js +++ b/modules/malefices-roll-dialog.js @@ -7,10 +7,10 @@ export class MaleficesRollDialog extends Dialog { let options = { classes: ["MaleficesDialog"], width: 540, height: 'fit-content', 'z-index': 99999 } let html - if (rollData.attr && rollData.attr.iscard) { - html = await renderTemplate('systems/fvtt-malefices/templates/dialogs/confrontation-dialog.hbs', rollData); + if (rollData?.attr?.iscard) { + html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-malefices/templates/dialogs/confrontation-dialog.hbs', rollData); } else { - html = await renderTemplate('systems/fvtt-malefices/templates/dialogs/roll-dialog-generic.hbs', rollData); + html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-malefices/templates/dialogs/roll-dialog-generic.hbs', rollData); } return new MaleficesRollDialog(actor, rollData, html, options); @@ -18,7 +18,7 @@ export class MaleficesRollDialog extends Dialog { /* -------------------------------------------- */ constructor(actor, rollData, html, options, close = undefined) { - let isCard = rollData.attr && rollData.attr.iscard + let isCard = rollData?.attr?.iscard let conf = { title: (isCard) ? "Jet" : "Tirage", content: html, @@ -45,7 +45,7 @@ export class MaleficesRollDialog extends Dialog { /* -------------------------------------------- */ roll() { - let isCard = this.rollData.attr && this.rollData.attr.iscard + let isCard = this.rollData?.attr?.iscard if (isCard) { MaleficesUtility.tirageConfrontationMalefices(this.rollData) } else { @@ -64,7 +64,6 @@ export class MaleficesRollDialog extends Dialog { activateListeners(html) { super.activateListeners(html); - var dialog = this; function onLoad() { } $(function () { onLoad(); }); @@ -87,6 +86,6 @@ export class MaleficesRollDialog extends Dialog { html.find('#confrontationModif').change((event) => { this.rollData.confrontationModif = Number(event.currentTarget.value) }) - + } } \ No newline at end of file diff --git a/modules/malefices-tirage-tarot-dialog.js b/modules/malefices-tirage-tarot-dialog.js index d137c9d..f9b0096 100644 --- a/modules/malefices-tirage-tarot-dialog.js +++ b/modules/malefices-tirage-tarot-dialog.js @@ -6,7 +6,7 @@ export class MaleficesTirageTarotDialog extends Dialog { static async create(actor, tirageData) { let options = { classes: ["MaleficesDialog"], width: 720, height: 740, 'z-index': 99999 }; - let html = await renderTemplate('systems/fvtt-malefices/templates/dialogs/tirage-tarot-dialog.hbs', tirageData); + let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-malefices/templates/dialogs/tirage-tarot-dialog.hbs', tirageData); return new MaleficesTirageTarotDialog(actor, tirageData, html, options); } @@ -36,7 +36,7 @@ export class MaleficesTirageTarotDialog extends Dialog { async sendCardRequest() { this.tirageData.state = 'waiting-user-card' let msg = await MaleficesUtility.createChatMessage(this.tirageData.user.name, "useronly", { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/request-tarot-card.hbs`, this.tirageData) + content: await renderTemplate(`systems/fvtt-malefices/templates/chat/request-tarot-card.hbs`, this.tirageData) }) //msg.setFlag("world", "tirage-data", this.tirageData) console.log("MSG IS", msg) @@ -50,7 +50,7 @@ export class MaleficesTirageTarotDialog extends Dialog { if ( selectedCard.system.isdualside) { // Cas des cartes pouvant avoir 2 sens selectedCard.system.ispositif = (Math.random() > 0.5) } - console.log("CARD SELECTED:", selectedCard) + console.log("CARD SELECTED:", selectedCard) // Cas spécial de la Roue de la Fortune if ( selectedCard.name.toLowerCase().includes("fortune")) { this.tirageData.maxPlayerCard += 1 @@ -63,7 +63,7 @@ export class MaleficesTirageTarotDialog extends Dialog { } } this.tirageData.deck = newList - + return selectedCard } @@ -74,9 +74,9 @@ export class MaleficesTirageTarotDialog extends Dialog { let selectedCard = this.drawCard() selectedCard.system.isgm = false await MaleficesUtility.createChatMessage(this.tirageData.user.name, "gmroll", { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) + content: await renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) }) - if (this.tirageData.cards[0].name == "???") { + if (this.tirageData.cards[0].name == "???") { this.tirageData.cards.shift() } this.tirageData.cards.push(selectedCard) @@ -87,9 +87,9 @@ export class MaleficesTirageTarotDialog extends Dialog { let selectedCard = this.drawCard() selectedCard.system.isgm = true await MaleficesUtility.createChatMessage(this.tirageData.user.name, "blindroll", { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) + content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) }) - if (this.tirageData.secretCards[0].name == "???") { + if (this.tirageData.secretCards[0].name == "???") { this.tirageData.secretCards.shift() } this.tirageData.secretCards.push(selectedCard) @@ -124,7 +124,7 @@ export class MaleficesTirageTarotDialog extends Dialog { } /* -------------------------------------------- */ async refreshDialog() { - const content = await renderTemplate("systems/fvtt-malefices/templates/dialogs/tirage-tarot-dialog.hbs", this.tirageData) + const content = await foundry.applications.handlebars.renderTemplate("systems/fvtt-malefices/templates/dialogs/tirage-tarot-dialog.hbs", this.tirageData) this.data.content = content this.render(true) } @@ -133,7 +133,7 @@ export class MaleficesTirageTarotDialog extends Dialog { activateListeners(html) { super.activateListeners(html); - var dialog = this; + let dialog = this; function onLoad() { } $(function () { onLoad(); }); @@ -150,6 +150,6 @@ export class MaleficesTirageTarotDialog extends Dialog { dialog.attributeToActor(actorId) } }) - + } } \ No newline at end of file diff --git a/modules/malefices-utility.js b/modules/malefices-utility.js index 442075b..7d167c8 100644 --- a/modules/malefices-utility.js +++ b/modules/malefices-utility.js @@ -43,6 +43,14 @@ export class MaleficesUtility { Handlebars.registerHelper('add', function (a, b) { return parseInt(a) + parseInt(b); }) + // Handle v12 removal of this helper + Handlebars.registerHelper('select', function (selected, options) { + const escapedValue = RegExp.escape(Handlebars.escapeExpression(selected)); + const rgx = new RegExp(' value=[\"\']' + escapedValue + '[\"\']'); + const html = options.fn(this); + return html.replace(rgx, "$& selected"); + }); + game.settings.register("world", "character-summary-data", { name: "character-summary-data", @@ -68,7 +76,7 @@ export class MaleficesUtility { return foundry.utils.duplicate(this.tarots) } static getTarot(tId) { - return this.tarots.find(t => t._id == tId) + return this.tarots.find(t => t._id == tId) } /* -------------------------------------------- */ @@ -99,14 +107,14 @@ export class MaleficesUtility { if (game.user.isGM) { game.system.malefices.currentTirage.addCard(msgId) } else { - game.socket.emit( "system.fvtt-malefices", {name: "msg-draw-card", data: {msgId: msgId}}) + game.socket.emit("system.fvtt-malefices", { name: "msg-draw-card", data: { msgId: msgId } }) } } /* -------------------------------------------- */ static async chatListeners(html) { - html.on("click", '.roll-destin', event => { + $(html).on("click", '.roll-destin', event => { let messageId = MaleficesUtility.findChatMessageId(event.currentTarget) let message = game.messages.get(messageId) let rollData = message.getFlag("world", "rolldata") @@ -115,11 +123,11 @@ export class MaleficesUtility { rollData.isReroll = true this.rollMalefices(rollData) }) - html.on("click", '.draw-tarot-card', event => { + $(html).on("click", '.draw-tarot-card', event => { let messageId = MaleficesUtility.findChatMessageId(event.currentTarget) this.drawDeckCard(messageId) }) - + } /* -------------------------------------------- */ @@ -130,7 +138,7 @@ export class MaleficesUtility { 'systems/fvtt-malefices/templates/items/partial-item-nav.hbs', 'systems/fvtt-malefices/templates/items/partial-item-description.hbs' ] - return loadTemplates(templatePaths); + return foundry.applications.handlebars.loadTemplates(templatePaths); } /* -------------------------------------------- */ @@ -204,7 +212,7 @@ export class MaleficesUtility { static async onSocketMesssage(msg) { console.log("SOCKET MESSAGE", msg.name) if (msg.name == "msg-draw-card") { - if ( game.user.isGM && game.system.malefices.currentTirage) { + if (game.user.isGM && game.system.malefices.currentTirage) { game.system.malefices.currentTirage.addCard(msg.data.msgId) } } @@ -271,71 +279,79 @@ export class MaleficesUtility { /* -------------------------------------------- */ static processSpecialCard(actor, rollData) { if (rollData.selectedCard.name.toLowerCase().includes("archange")) { - let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("archange")) + let actorCard = actor.items.find(c => c.type == "tarot" && c.name.toLowerCase().includes("archange")) if (actorCard) { MaleficesUtility.createChatMessage(actor.name, "gmroll", { - content: `Conséquence supplémentaire !
L'Archange : ${actor.name} gagne 1 point de Spiritualité.` }) + content: `Conséquence supplémentaire !
L'Archange : ${actor.name} gagne 1 point de Spiritualité.` + }) actor.incDecAttr("spiritualite", 1) } } if (rollData.selectedCard.name.toLowerCase().includes("vicaire")) { - let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("vicaire")) + let actorCard = actor.items.find(c => c.type == "tarot" && c.name.toLowerCase().includes("vicaire")) if (actorCard) { MaleficesUtility.createChatMessage(actor.name, "blindroll", { - content: `Conséquence supplémentaire !
Le Vicaire : ${actor.name} vient de gagner 1 point en Pratique de la Magie Blanche (MPMB, secret).` }) + content: `Conséquence supplémentaire !
Le Vicaire : ${actor.name} vient de gagner 1 point en Pratique de la Magie Blanche (MPMB, secret).` + }) actor.incDecMPMB(1) } } if (rollData.selectedCard.name.toLowerCase().includes("chance")) { - let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("chance")) + let actorCard = actor.items.find(c => c.type == "tarot" && c.name.toLowerCase().includes("chance")) if (actorCard) { MaleficesUtility.createChatMessage(actor.name, "gmroll", { - content: `Conséquence supplémentaire !
La Chance : ${actor.name} a gagné 1 point de Destin.` }) + content: `Conséquence supplémentaire !
La Chance : ${actor.name} a gagné 1 point de Destin.` + }) actor.incDecDestin(1) } } if (rollData.selectedCard.name.toLowerCase().includes("mort")) { - let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("mort")) + let actorCard = actor.items.find(c => c.type == "tarot" && c.name.toLowerCase().includes("mort")) if (actorCard) { MaleficesUtility.createChatMessage(actor.name, "gmroll", { - content: `Conséquence supplémentaire !
La Mort : ${actor.name} est pétrifié par la peur.` }) + content: `Conséquence supplémentaire !
La Mort : ${actor.name} est pétrifié par la peur.` + }) actor.incDecDestin(1) } } if (rollData.selectedCard.name.toLowerCase().includes("diable")) { - let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("diable")) + let actorCard = actor.items.find(c => c.type == "tarot" && c.name.toLowerCase().includes("diable")) if (actorCard) { MaleficesUtility.createChatMessage(actor.name, "gmroll", { - content: `Conséquence supplémentaire !
Le Diable : ${actor.name} gagne 1 point de Rationnalité.` }) + content: `Conséquence supplémentaire !
Le Diable : ${actor.name} gagne 1 point de Rationnalité.` + }) actor.incDecAttr("rationnalite", 1) } } if (rollData.selectedCard.name.toLowerCase().includes("lune noire")) { - let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("lune noire")) + let actorCard = actor.items.find(c => c.type == "tarot" && c.name.toLowerCase().includes("lune noire")) if (actorCard) { MaleficesUtility.createChatMessage(actor.name, "blindroll", { - content: `Conséquence supplémentaire !
La Lune Noire : ${actor.name} vient de gagner 1 point de Fluide (secret).` }) + content: `Conséquence supplémentaire !
La Lune Noire : ${actor.name} vient de gagner 1 point de Fluide (secret).` + }) actor.incDecFluide(1) } } if (rollData.selectedCard.name.toLowerCase().includes("grand livre")) { - let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("grand livre")) + let actorCard = actor.items.find(c => c.type == "tarot" && c.name.toLowerCase().includes("grand livre")) if (actorCard) { MaleficesUtility.createChatMessage(actor.name, "blindroll", { - content: `Conséquence supplémentaire !
La Lune Noire : ${actor.name} vient de gagner 1 point de Fluide (secret).` }) + content: `Conséquence supplémentaire !
La Lune Noire : ${actor.name} vient de gagner 1 point de Fluide (secret).` + }) actor.incDecFluide(1) } } if (rollData.selectedCard.name.toLowerCase().includes("sorcier")) { - let actorCard = actor.items.find( c => c.type =="tarot" && c.name.toLowerCase().includes("sorcier")) + let actorCard = actor.items.find(c => c.type == "tarot" && c.name.toLowerCase().includes("sorcier")) if (actorCard) { MaleficesUtility.createChatMessage(actor.name, "blindroll", { - content: `Conséquence supplémentaire !
Le Vicaire : ${actor.name} vient de gagner 1 point en Pratique de la Magie Noire (MPMN, secret).` }) + content: `Conséquence supplémentaire !
Le Vicaire : ${actor.name} vient de gagner 1 point en Pratique de la Magie Noire (MPMN, secret).` + }) actor.incDecMPMN(1) } } - } + } /* -------------------------------------------- */ static computeResults(rollData) { @@ -362,30 +378,30 @@ export class MaleficesUtility { rollData.target = rollData.attr.value - rollData.confrontationDegre + rollData.confrontationModif let deck = this.getTarots() - let index = Math.round(Math.random() * (deck.length-1)) + let index = Math.round(Math.random() * (deck.length - 1)) let selectedCard = deck[index] selectedCard.system.ispositif = (Math.random() > 0.5) - selectedCard.value = (selectedCard.system.ispositif)? selectedCard.system.numericvalueup : selectedCard.system.numericvaluedown + selectedCard.value = (selectedCard.system.ispositif) ? selectedCard.system.numericvalueup : selectedCard.system.numericvaluedown rollData.total = selectedCard.value rollData.selectedCard = selectedCard await MaleficesUtility.createChatMessage(actor.name, "gmroll", { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) + content: await renderTemplate(`systems/fvtt-malefices/templates/chat/display-tarot-card.hbs`, selectedCard) }) this.computeResults(rollData) if (rollData.isSuccess) { - rollData.gainAttr = Math.ceil(rollData.confrontationDegre/2) + ((rollData.isCritical ) ? 1 : 0) - actor.incDecAttr(rollData.attr.abbrev, rollData.gainAttr ) + rollData.gainAttr = Math.ceil(rollData.confrontationDegre / 2) + ((rollData.isCritical) ? 1 : 0) + actor.incDecAttr(rollData.attr.abbrev, rollData.gainAttr) } else { rollData.gainAttr = rollData.confrontationDegre - actor.incDecAttr(rollData.attr.abbrev, -rollData.gainAttr ) + actor.incDecAttr(rollData.attr.abbrev, -rollData.gainAttr) } await MaleficesUtility.createChatMessage(actor.name, "gmroll", { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/chat-confrontation-result.hbs`, rollData) + content: await renderTemplate(`systems/fvtt-malefices/templates/chat/chat-confrontation-result.hbs`, rollData) }) - this.processSpecialCard(actor, rollData) + this.processSpecialCard(actor, rollData) } /* -------------------------------------------- */ static async rollMalefices(rollData) { @@ -410,7 +426,7 @@ export class MaleficesUtility { this.computeResults(rollData) let msg = await this.createChatWithRollMode(rollData.alias, { - content: await renderTemplate(`systems/fvtt-malefices/templates/chat/chat-generic-result.hbs`, rollData) + content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-malefices/templates/chat/chat-generic-result.hbs`, rollData) }) msg.setFlag("world", "rolldata", rollData) if (rollData.mode == "initiative") { diff --git a/packs/malefices-archetypes/000031.log b/packs/malefices-archetypes/000031.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/malefices-archetypes/000035.log b/packs/malefices-archetypes/000035.log new file mode 100644 index 0000000000000000000000000000000000000000..2cf32513fd35928257ef664daf99a13eceb80ff2 GIT binary patch literal 128850 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 a{Xz52VS2sw@agvbA9f!vZEgPg>;DhJsmjp+ literal 0 HcmV?d00001 diff --git a/packs/malefices-archetypes/CURRENT b/packs/malefices-archetypes/CURRENT index 52f34be..eea9b0f 100644 --- a/packs/malefices-archetypes/CURRENT +++ b/packs/malefices-archetypes/CURRENT @@ -1 +1 @@ -MANIFEST-000029 +MANIFEST-000034 diff --git a/packs/malefices-archetypes/LOG b/packs/malefices-archetypes/LOG index 396b357..bde38ff 100644 --- a/packs/malefices-archetypes/LOG +++ b/packs/malefices-archetypes/LOG @@ -1,14 +1,3 @@ -2024/11/29-17:51:13.272607 7f11d37fe6c0 Recovering log #28 -2024/11/29-17:51:13.282971 7f11d37fe6c0 Delete type=0 #28 -2024/11/29-17:51:13.283067 7f11d37fe6c0 Delete type=3 #27 -2024/11/29-17:51:44.217520 7f11d27fc6c0 Level-0 table #32: started -2024/11/29-17:51:44.221106 7f11d27fc6c0 Level-0 table #32: 50651 bytes OK -2024/11/29-17:51:44.227128 7f11d27fc6c0 Delete type=0 #30 -2024/11/29-17:51:44.256008 7f11d27fc6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at '!items!xtYE2kVIfNtrXSoU' @ 46 : 1 -2024/11/29-17:51:44.256025 7f11d27fc6c0 Compacting 2@0 + 0@1 files -2024/11/29-17:51:44.260729 7f11d27fc6c0 Generated table #33@0: 23 keys, 50651 bytes -2024/11/29-17:51:44.260747 7f11d27fc6c0 Compacted 2@0 + 0@1 files => 50651 bytes -2024/11/29-17:51:44.266718 7f11d27fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2024/11/29-17:51:44.266853 7f11d27fc6c0 Delete type=2 #22 -2024/11/29-17:51:44.267043 7f11d27fc6c0 Delete type=2 #32 -2024/11/29-17:51:44.297135 7f11d27fc6c0 Manual compaction at level-0 from '!items!xtYE2kVIfNtrXSoU' @ 46 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end) +2025/05/01-00:13:13.266834 7efc4dffb6c0 Recovering log #31 +2025/05/01-00:13:13.321299 7efc4dffb6c0 Delete type=3 #29 +2025/05/01-00:13:13.321436 7efc4dffb6c0 Delete type=0 #31 diff --git a/packs/malefices-archetypes/LOG.old b/packs/malefices-archetypes/LOG.old index c2fda22..396b357 100644 --- a/packs/malefices-archetypes/LOG.old +++ b/packs/malefices-archetypes/LOG.old @@ -1 +1,14 @@ -2024/05/03-23:45:44.034560 7f863f4006c0 Delete type=3 #1 +2024/11/29-17:51:13.272607 7f11d37fe6c0 Recovering log #28 +2024/11/29-17:51:13.282971 7f11d37fe6c0 Delete type=0 #28 +2024/11/29-17:51:13.283067 7f11d37fe6c0 Delete type=3 #27 +2024/11/29-17:51:44.217520 7f11d27fc6c0 Level-0 table #32: started +2024/11/29-17:51:44.221106 7f11d27fc6c0 Level-0 table #32: 50651 bytes OK +2024/11/29-17:51:44.227128 7f11d27fc6c0 Delete type=0 #30 +2024/11/29-17:51:44.256008 7f11d27fc6c0 Manual compaction at level-0 from '!items!2HWSdXDSFei9KC6y' @ 72057594037927935 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at '!items!xtYE2kVIfNtrXSoU' @ 46 : 1 +2024/11/29-17:51:44.256025 7f11d27fc6c0 Compacting 2@0 + 0@1 files +2024/11/29-17:51:44.260729 7f11d27fc6c0 Generated table #33@0: 23 keys, 50651 bytes +2024/11/29-17:51:44.260747 7f11d27fc6c0 Compacted 2@0 + 0@1 files => 50651 bytes +2024/11/29-17:51:44.266718 7f11d27fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2024/11/29-17:51:44.266853 7f11d27fc6c0 Delete type=2 #22 +2024/11/29-17:51:44.267043 7f11d27fc6c0 Delete type=2 #32 +2024/11/29-17:51:44.297135 7f11d27fc6c0 Manual compaction at level-0 from '!items!xtYE2kVIfNtrXSoU' @ 46 : 1 .. '!items!xtYE2kVIfNtrXSoU' @ 0 : 0; will stop at (end) diff --git a/packs/malefices-archetypes/MANIFEST-000029 b/packs/malefices-archetypes/MANIFEST-000029 deleted file mode 100644 index 7a470c826c264cbf8edef174adf51034bfd8ade5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmZ2oQSm#8fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfbd>|8gqykcfaYHqQj zkw-gV<(U}Tcx zWMGzO(JTJ=DAEtel?QSaSzOr}6mH|OL!W>ht`PZmRmawpK@C-6ab;y7Ur$o2}yQOAYdOMp{GU`KA!Q?SaafQh5 TJ3Vg!2LmIMGA9GG3X3ZMuR1G{ literal 0 HcmV?d00001 diff --git a/packs/malefices-armes/000031.log b/packs/malefices-armes/000031.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/malefices-armes/000035.log b/packs/malefices-armes/000035.log new file mode 100644 index 0000000000000000000000000000000000000000..f59ac79d83fe3cda172072fa2a01989a2cf1c331 GIT binary patch literal 6429 zcmeI0%W~pI6oxa4Eb;`%abpj zQb`=|sn)Grb?}A3CeKd$$CuqdK3yV)9fBI@74;;yiOhWcibyImI=1OpkZ({H$%U&j zuzhI zS{Un{p@xZVk3_S>5eN2w8dCUbhf-HF^fzaTkv&>bS_|( z_tN`y2cB=PJ91}l+rx`CFOT`KdJOw8eAlKrY$eQOzHLKSuGN!E#-I}>w+$jt zBS`U9ZH4XfIfL7tP*?THASU*0=r;^(?W|E!{iLdaX?D?VgmraF+IiXcaJhanwg-cs zW2}#b4tw5}U@Y`|;e~OizKLuB?jwkNWOgTJHE7_TFq;N5!EEczyji_$8m*g`BWGY~ zzs1a+_#U-02FaZIM1ZR7&abH|-AnK)!wT2gBw0O(6v@Rr#M1Ixi9&(=)}r5`pdPIJ zmiGqbG_OgNhedNT2V-GAXY`~-?sOG>^#}gJUBya*w2qw1E1S z72XC}S>d(a4XkxYc;JLXm;ArB!h2*Z(qtx}HR|nrPqrq^>h+uaYVdmuZTyCJD!BK- zrPzW+cU0mS;y{VvrDhB2*q4Ot9>n_{v}R9~I8AN>>gi(M*IBuHEwnCYBYBrsZcVV~ zJw}rs=#}+wolUQ-jwMoFxloLmjP&^<%Kvy&@ko@}jW#$x`@VfKF@2vmE1)(1)lo&7 z*96M;`HSB9a~;>GZF|D5?f0=hAB!=ZX2Ge~?(cheUE*K7MYPT)!w)>UNL!3;J8`hD zd-c6h<20uUgxU1<;Jj9NQLrw~OicK%F~WUJnU{I#6ZKEO>!F*YiZG~gFU3*TmZtz$ loL1th@lSc!(GS72jP>Ue|usn(xjr>zX4L*X)OQ% literal 0 HcmV?d00001 diff --git a/packs/malefices-armes/CURRENT b/packs/malefices-armes/CURRENT index 52f34be..eea9b0f 100644 --- a/packs/malefices-armes/CURRENT +++ b/packs/malefices-armes/CURRENT @@ -1 +1 @@ -MANIFEST-000029 +MANIFEST-000034 diff --git a/packs/malefices-armes/LOG b/packs/malefices-armes/LOG index af525f5..f64632f 100644 --- a/packs/malefices-armes/LOG +++ b/packs/malefices-armes/LOG @@ -1,14 +1,3 @@ -2024/11/29-17:51:13.259713 7f11d2ffd6c0 Recovering log #28 -2024/11/29-17:51:13.269307 7f11d2ffd6c0 Delete type=0 #28 -2024/11/29-17:51:13.269361 7f11d2ffd6c0 Delete type=3 #27 -2024/11/29-17:51:44.227241 7f11d27fc6c0 Level-0 table #32: started -2024/11/29-17:51:44.230288 7f11d27fc6c0 Level-0 table #32: 2091 bytes OK -2024/11/29-17:51:44.237280 7f11d27fc6c0 Delete type=0 #30 -2024/11/29-17:51:44.267165 7f11d27fc6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at '!items!nkRQU81L1gWOfaeo' @ 18 : 1 -2024/11/29-17:51:44.267179 7f11d27fc6c0 Compacting 2@0 + 0@1 files -2024/11/29-17:51:44.270390 7f11d27fc6c0 Generated table #33@0: 9 keys, 2091 bytes -2024/11/29-17:51:44.270401 7f11d27fc6c0 Compacted 2@0 + 0@1 files => 2091 bytes -2024/11/29-17:51:44.276181 7f11d27fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2024/11/29-17:51:44.276330 7f11d27fc6c0 Delete type=2 #22 -2024/11/29-17:51:44.276569 7f11d27fc6c0 Delete type=2 #32 -2024/11/29-17:51:44.297146 7f11d27fc6c0 Manual compaction at level-0 from '!items!nkRQU81L1gWOfaeo' @ 18 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end) +2025/05/01-00:13:13.203817 7efc4effd6c0 Recovering log #31 +2025/05/01-00:13:13.258580 7efc4effd6c0 Delete type=3 #29 +2025/05/01-00:13:13.258656 7efc4effd6c0 Delete type=0 #31 diff --git a/packs/malefices-armes/LOG.old b/packs/malefices-armes/LOG.old index 9e15543..af525f5 100644 --- a/packs/malefices-armes/LOG.old +++ b/packs/malefices-armes/LOG.old @@ -1 +1,14 @@ -2024/05/03-23:45:44.013998 7f863fe006c0 Delete type=3 #1 +2024/11/29-17:51:13.259713 7f11d2ffd6c0 Recovering log #28 +2024/11/29-17:51:13.269307 7f11d2ffd6c0 Delete type=0 #28 +2024/11/29-17:51:13.269361 7f11d2ffd6c0 Delete type=3 #27 +2024/11/29-17:51:44.227241 7f11d27fc6c0 Level-0 table #32: started +2024/11/29-17:51:44.230288 7f11d27fc6c0 Level-0 table #32: 2091 bytes OK +2024/11/29-17:51:44.237280 7f11d27fc6c0 Delete type=0 #30 +2024/11/29-17:51:44.267165 7f11d27fc6c0 Manual compaction at level-0 from '!items!5J6qIaWdnhEGMAXJ' @ 72057594037927935 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at '!items!nkRQU81L1gWOfaeo' @ 18 : 1 +2024/11/29-17:51:44.267179 7f11d27fc6c0 Compacting 2@0 + 0@1 files +2024/11/29-17:51:44.270390 7f11d27fc6c0 Generated table #33@0: 9 keys, 2091 bytes +2024/11/29-17:51:44.270401 7f11d27fc6c0 Compacted 2@0 + 0@1 files => 2091 bytes +2024/11/29-17:51:44.276181 7f11d27fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2024/11/29-17:51:44.276330 7f11d27fc6c0 Delete type=2 #22 +2024/11/29-17:51:44.276569 7f11d27fc6c0 Delete type=2 #32 +2024/11/29-17:51:44.297146 7f11d27fc6c0 Manual compaction at level-0 from '!items!nkRQU81L1gWOfaeo' @ 18 : 1 .. '!items!nkRQU81L1gWOfaeo' @ 0 : 0; will stop at (end) diff --git a/packs/malefices-armes/MANIFEST-000029 b/packs/malefices-armes/MANIFEST-000029 deleted file mode 100644 index 626c855e8144bb9b9ecd7a7723aeabb7c3f973d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmebGzcVS3fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfbdY^{L2VrEHdZn2`N zmsz1_Vt7hkhO4`;V}utY7Xui;YX=i9=U}TiaNi9pwNlDUksw_z@&n!-L&d)7KEJ`fNFJfhoSIjI)%`H~U%MJ<* zwJ`KCOb_=@OH9pY6k-4ac1Fe30x(6UUS@@!iQy@E8LsZWjuBpr!VpC;c??6OA@U}y Rr8hVj7@3qg8JJaAqyZf-CddE) literal 0 HcmV?d00001 diff --git a/packs/malefices-macros/000031.log b/packs/malefices-macros/000031.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/malefices-macros/000035.log b/packs/malefices-macros/000035.log new file mode 100644 index 0000000000000000000000000000000000000000..36ebeecdf716231a4fc8727aa1df93e06d6d924a GIT binary patch literal 1744 zcmds%PjAyO6u_B49QXuq%X|)P(`4zNTe}X{PGyBv+2As{iIaG;_{W0*}b%;ml`r zc)ag^e=$cH<^;9Tr`sD<@Y@?JBFY*Kl$DD@T8vo30kV;v<;EyXv4)!pMR`q_m|zA1 zTmx&*NXQ_ZP{%LqT-`)Fv;MoLZ9iHpnDB*{6`r)d3 znu^cYUmw6jq*Y|Z3bE8=3!SxdTpc6(BA9IxejUgMWr$9G& 851 bytes -2024/11/29-17:51:44.287399 7f11d27fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2024/11/29-17:51:44.287547 7f11d27fc6c0 Delete type=2 #22 -2024/11/29-17:51:44.287718 7f11d27fc6c0 Delete type=2 #32 -2024/11/29-17:51:44.297154 7f11d27fc6c0 Manual compaction at level-0 from '!macros!zDPgmHiwNxBWhoYz' @ 6 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end) +2025/05/01-00:13:13.328666 7efc4f7fe6c0 Recovering log #31 +2025/05/01-00:13:13.380625 7efc4f7fe6c0 Delete type=3 #29 +2025/05/01-00:13:13.380738 7efc4f7fe6c0 Delete type=0 #31 diff --git a/packs/malefices-macros/LOG.old b/packs/malefices-macros/LOG.old index 1b8b127..b51f10d 100644 --- a/packs/malefices-macros/LOG.old +++ b/packs/malefices-macros/LOG.old @@ -1 +1,14 @@ -2024/05/03-23:45:44.055066 7f863fe006c0 Delete type=3 #1 +2024/11/29-17:51:13.287438 7f11d3fff6c0 Recovering log #28 +2024/11/29-17:51:13.297962 7f11d3fff6c0 Delete type=0 #28 +2024/11/29-17:51:13.298081 7f11d3fff6c0 Delete type=3 #27 +2024/11/29-17:51:44.237485 7f11d27fc6c0 Level-0 table #32: started +2024/11/29-17:51:44.240689 7f11d27fc6c0 Level-0 table #32: 851 bytes OK +2024/11/29-17:51:44.246485 7f11d27fc6c0 Delete type=0 #30 +2024/11/29-17:51:44.276713 7f11d27fc6c0 Manual compaction at level-0 from '!macros!ESV4er8Hy6liMOC3' @ 72057594037927935 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at '!macros!zDPgmHiwNxBWhoYz' @ 6 : 1 +2024/11/29-17:51:44.276731 7f11d27fc6c0 Compacting 2@0 + 0@1 files +2024/11/29-17:51:44.280157 7f11d27fc6c0 Generated table #33@0: 3 keys, 851 bytes +2024/11/29-17:51:44.280180 7f11d27fc6c0 Compacted 2@0 + 0@1 files => 851 bytes +2024/11/29-17:51:44.287399 7f11d27fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2024/11/29-17:51:44.287547 7f11d27fc6c0 Delete type=2 #22 +2024/11/29-17:51:44.287718 7f11d27fc6c0 Delete type=2 #32 +2024/11/29-17:51:44.297154 7f11d27fc6c0 Manual compaction at level-0 from '!macros!zDPgmHiwNxBWhoYz' @ 6 : 1 .. '!macros!zDPgmHiwNxBWhoYz' @ 0 : 0; will stop at (end) diff --git a/packs/malefices-macros/MANIFEST-000029 b/packs/malefices-macros/MANIFEST-000029 deleted file mode 100644 index 14cf6f42a44917da2f3413308779e45bdac67c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 334 zcmd1&6*wuGfss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfbd>^hr*Vs2t`QGT(a zYjBuJYLSIUrCCmDg>8?`pgoS$2eSd>_jU&P9wpqQJOT$Ep|SmhFs zp6iiW?pNUyo{=9}#mL402JDQAm)YQ|T!X_*Qj07+D$Q~-ef^z{8QCGK;0iE|;e;s2 Tf9&>`gMpDrnUjH8g@qFUP{1mL literal 0 HcmV?d00001 diff --git a/packs/malefices-tarots/000031.log b/packs/malefices-tarots/000031.log deleted file mode 100644 index e69de29..0000000 diff --git a/packs/malefices-tarots/000035.log b/packs/malefices-tarots/000035.log new file mode 100644 index 0000000000000000000000000000000000000000..802ed43c989796e5716ed088ffd9dddf4bba8f3a GIT binary patch literal 15201 zcmeI3%W~pI6oxa4)Vx8mWmJ`#jpISwWXQ^38yJLbzy=Sgl&dARaD#+o-7t2|3#770 zC6(JEmAA-SW`m431ehpp(MyS)wIYM3kQNXwdsh59Ls~3#2mmYck0p* z@ASa)zBZA8b)sVT9Wl`W{>=7u-!sjYJdzM`?gRjt`2F|WGs}#9K11C^O4~a4c@Ki_?V8^mPD`G*)XA8w# zPRi!tgiT8$I$<{+6(s4Xn3G_mfn2XS-=RE(_tGv7>UT$l;O3;9tDlX-IZYdnHR78c z%Xd_mVeA_QTp8ashzj$r4&w*gay)hn&Re$(4erzYNEddPT{^fcaFTZfZrBrCX&w1S zxZ%ayC}ru@BlL3dJPIEds1}AbGlzTFxRb!d5(r;x@mE?VQY=c+^fQ(CbQg{-uS?2apKCYi+YSTe-c-=jv+dQe?tHr<>(`F=_4X%H)_5N=~e z!HPu6DkuhP5JESQnSFOJ-N3HPYC<99Nn|0NxcyPHCO4{nrFyMPzbqjI=i0FxH8hX0 z$?81h#=Nex0U5X#FM$^a>^sBPt;WOzMqmHVdi;qH`7&mT^$%+HLzzCCt40@;6@ z#Lh!*%J3n@;hap0+C zfi~OhU^2`q-Jm+U z=;Ca-g&R_>{p$*|j(Ug2gIJaKcph_OUe{I=qBJ(cnTB1jCL|PCo=O&2BWTL!>CrIn zv~n(6`@*R%EHuZwZaWXTHLtKZ8^J5AFqMj;>`^ zU2*EYAFmgXY34Hbl!H!oD5~{8mha^KQM$V1eC}+?6MYnm> zkydFvAxJS|^#WnUjbUBqTq&0s9Y3s;^vGr^AZ|TOPov z3LbmDLp$T*G_TJ=H)eL7z>1Jqy=0bFZdpUHSJ))B9`ax^%nmw|el6FXqH$R<@?GV3 zraS=5A_W<7m$Vi^H)eKi88$NM;&QG%vPndi=aNCzvf55T?VJy!ta>>`*FP+gJ=TyJ zr@Yd5TT=>2M1-(HF_sn9U9Suzw2sBI$YAPR4A5YD6Xe^yhhSPpKP@q(&mUmgnI0#r zVZ^Ozjckh*_kFSS@r36lgM^j^cp@2CCpA^-O{Tree*NCdh(*@ALQ4#+Yz1-KfMwK; znO*B$BPEto*d6x)2^Cl#OqN;sObgmt5zD0FsS;;hWu(AkKVe^WY@IQSpj#tL*Rfu@ zf_=923CQe(!$>($$Q{vA){NRdvu 4001 bytes -2024/11/29-17:51:44.296891 7f11d27fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] -2024/11/29-17:51:44.296997 7f11d27fc6c0 Delete type=2 #22 -2024/11/29-17:51:44.297082 7f11d27fc6c0 Delete type=2 #32 -2024/11/29-17:51:44.297163 7f11d27fc6c0 Manual compaction at level-0 from '!items!zbGGMEQFdwVdlKAf' @ 44 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end) +2025/05/01-00:13:13.144691 7efc4e7fc6c0 Recovering log #31 +2025/05/01-00:13:13.196169 7efc4e7fc6c0 Delete type=3 #29 +2025/05/01-00:13:13.196332 7efc4e7fc6c0 Delete type=0 #31 diff --git a/packs/malefices-tarots/LOG.old b/packs/malefices-tarots/LOG.old index 44e27ea..f917e3e 100644 --- a/packs/malefices-tarots/LOG.old +++ b/packs/malefices-tarots/LOG.old @@ -1 +1,14 @@ -2024/05/03-23:45:43.983438 7f863f4006c0 Delete type=3 #1 +2024/11/29-17:51:13.246162 7f11d8ffa6c0 Recovering log #28 +2024/11/29-17:51:13.256519 7f11d8ffa6c0 Delete type=0 #28 +2024/11/29-17:51:13.256622 7f11d8ffa6c0 Delete type=3 #27 +2024/11/29-17:51:44.246559 7f11d27fc6c0 Level-0 table #32: started +2024/11/29-17:51:44.249606 7f11d27fc6c0 Level-0 table #32: 4001 bytes OK +2024/11/29-17:51:44.255805 7f11d27fc6c0 Delete type=0 #30 +2024/11/29-17:51:44.287848 7f11d27fc6c0 Manual compaction at level-0 from '!items!1DRKmbzGzbCRCswc' @ 72057594037927935 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at '!items!zbGGMEQFdwVdlKAf' @ 44 : 1 +2024/11/29-17:51:44.287866 7f11d27fc6c0 Compacting 2@0 + 0@1 files +2024/11/29-17:51:44.291002 7f11d27fc6c0 Generated table #33@0: 22 keys, 4001 bytes +2024/11/29-17:51:44.291025 7f11d27fc6c0 Compacted 2@0 + 0@1 files => 4001 bytes +2024/11/29-17:51:44.296891 7f11d27fc6c0 compacted to: files[ 0 1 0 0 0 0 0 ] +2024/11/29-17:51:44.296997 7f11d27fc6c0 Delete type=2 #22 +2024/11/29-17:51:44.297082 7f11d27fc6c0 Delete type=2 #32 +2024/11/29-17:51:44.297163 7f11d27fc6c0 Manual compaction at level-0 from '!items!zbGGMEQFdwVdlKAf' @ 44 : 1 .. '!items!zbGGMEQFdwVdlKAf' @ 0 : 0; will stop at (end) diff --git a/packs/malefices-tarots/MANIFEST-000029 b/packs/malefices-tarots/MANIFEST-000029 deleted file mode 100644 index 029b60c1426061e77022137dd2b5758f3046b854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmebOoXL~Oz{n_-lUkOVlai$8R9TW*o>`pgoS$2eSd>_jU&PKJHeX&|F|#B!w^-58 zCCEEBsmi@7$vMcmxICFroB<4A@>NOh?!K;pZYkwqDLLMbX^c7$`HJ7>FE|(&ndCSb znB`e?j>QT|_yW1|K&~Q-6FY;#Lfls960pJvBERzxcU&pdOeGd4Rt7?DVq*|vV^Cmc IRHWQ)09Ke$wEzGB diff --git a/packs/malefices-tarots/MANIFEST-000034 b/packs/malefices-tarots/MANIFEST-000034 new file mode 100644 index 0000000000000000000000000000000000000000..ab889f72e1d1809bb61f039989e6b1a2a79e0099 GIT binary patch literal 153 zcmcZ?@3g#`fss)vC$%g!CnZVGsj?)sJhM2}IX|}`u_&=5zlfDVUNN&IHMdx?D#_j5 z*EP^Br93Pp$J;TDQHKEx*clZU%EJ^Hx&(RWCRMptB{>H<7ndh9>OvI3 - +

@@ -45,7 +45,7 @@ {{!-- Skills Tab --}}
- +
@@ -68,12 +68,12 @@ {{#if attr.hasmax}} - {{/if}} + {{/if}} {{#if (eq key "physique")}} {{#if @root.phyMalus}} ({{@root.phyMalus}}) {{/if}} - {{/if}} + {{/if}} {{/each}} @@ -81,7 +81,7 @@ Points de Destin - + {{#if isGM}}
  • Fluide (MJ) @@ -171,7 +171,7 @@
    - +
  • {{#each armes as |arme key|}} @@ -201,7 +201,7 @@
     
    - +
    @@ -229,7 +229,7 @@
     
    - +
    @@ -320,7 +320,7 @@
    - +
    • @@ -339,7 +339,7 @@
      - +
    • {{#each tarots as |tarot key|}} @@ -368,7 +368,7 @@
      - +
      {{#each tarotsCache as |tarot key|}} diff --git a/templates/dialogs/roll-dialog-generic.hbs b/templates/dialogs/roll-dialog-generic.hbs index 00d88d8..436f6bd 100644 --- a/templates/dialogs/roll-dialog-generic.hbs +++ b/templates/dialogs/roll-dialog-generic.hbs @@ -7,7 +7,7 @@
      - + {{#if attr}}
      {{attr.label}} : @@ -17,11 +17,11 @@ {{#if phyMalus}} ({{phyMalus}}) {{/if}} - {{/if}} + {{/if}}
      {{/if}} - +
      Rappel des élements biographiques :
        @@ -36,30 +36,30 @@
        Bonus/Malus biographique : + {{selectOptions config.bonusMalusPersoOptions selected=bonusMalusPerso valueAttr="value" labelAttr="label"}} +
        Bonus/Malus de situation : + {{selectOptions config.bonusMalusPersoOptions selected=bonusMalusSituation valueAttr="value" labelAttr="label"}} +
        {{#if arme}}
        Défense : + {{selectOptions config.bonusMalusDefOptions selected=bonusMalusDef valueAttr="value" labelAttr="label"}} +
        Portée : + {{selectOptions config.bonusMalusPorteeOptions selected=bonusMalusPortee valueAttr="value" labelAttr="label"}} +
        {{/if}}