Compare commits

..

19 Commits

Author SHA1 Message Date
e47ad95a38 Fix FR translatrion with babele 2026-02-18 00:08:07 +01:00
fc386487e8 Fix FR translatrion with babele 2026-02-17 23:38:06 +01:00
bda88c067e Release with specific message 2025-10-17 22:50:39 +02:00
4003e0e42b Release with specific message 2025-10-17 22:50:04 +02:00
a6d811bcda Sync message 2025-10-17 15:32:44 +02:00
94eb637637 Sync message 2025-10-17 15:32:22 +02:00
8c58367cdc Sync message 2025-10-17 15:31:53 +02:00
c439ca978c Update internal system with dynamic message 2025-10-17 15:17:04 +02:00
ffe1144f2a Update internal system with dynamic message 2025-10-17 15:16:00 +02:00
38ef07d17b Update internal system with dynamic message 2025-10-17 15:15:03 +02:00
a8cc2dce4b Update internal system with dynamic message 2025-10-17 15:14:29 +02:00
0fadd0783c Update internal system with dynamic message 2025-10-17 15:12:19 +02:00
a55a038d32 Update internal system with dynamic message 2025-10-17 15:01:42 +02:00
d012f78881 Update internal system with dynamic message 2025-10-17 14:59:37 +02:00
01e13da234 Correction sur application tokens acteurs 2025-10-17 00:33:24 +02:00
bc09b5050d Correction sur application tokens acteurs 2025-10-17 00:32:42 +02:00
d68001b376 Fix token/actor 2025-10-02 22:53:09 +02:00
6b22dade9c Foundry v13 migration 2025-05-01 23:27:51 +02:00
965fc02eb3 Foundry v13 migration 2025-05-01 23:23:29 +02:00
61 changed files with 3170 additions and 2803 deletions

View File

@@ -6,7 +6,7 @@
import { EcrymeUtility } from "../common/ecryme-utility.js";
/* -------------------------------------------- */
export class EcrymeActorSheet extends ActorSheet {
export class EcrymeActorSheet extends foundry.appv1.sheets.ActorSheet {
/** @override */
static get defaultOptions() {
@@ -53,9 +53,9 @@ export class EcrymeActorSheet extends ActorSheet {
cephalySkills: this.actor.getCephalySkills(),
subActors: foundry.utils.duplicate(this.actor.getSubActors()),
annency: this.actor.getAnnency(),
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.equipmentfree, { 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.equipmentfree, { async: true }),
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,
@@ -63,7 +63,7 @@ export class EcrymeActorSheet extends ActorSheet {
}
this.formData = formData;
console.log("PC : ", formData, this.object);
//console.log("PC : ", formData, this.object);
return formData;
}

View File

@@ -6,7 +6,7 @@
import { EcrymeUtility } from "../common/ecryme-utility.js";
/* -------------------------------------------- */
export class EcrymeAnnencySheet extends ActorSheet {
export class EcrymeAnnencySheet extends foundry.appv1.sheets.ActorSheet {
/** @override */
static get defaultOptions() {

View File

@@ -36,7 +36,7 @@ export class EcrymeUtility {
/* -------------------------------------------- */
static async init() {
Hooks.on('renderChatLog', (log, html, data) => EcrymeUtility.chatListeners(html));
Hooks.on("getChatLogEntryContext", (html, options) => EcrymeUtility.chatMenuManager(html, options));
Hooks.on("getChatMessageContextOptions", (html, options) => EcrymeUtility.chatMenuManager(html, options));
this.rollDataStore = {}
this.defenderStore = {}
@@ -155,8 +155,8 @@ export class EcrymeUtility {
/* -------------------------------------------- */
static getActorFromRollData(rollData) {
let actor = game.actors.get(rollData.actorId)
if (rollData.tokenId) {
let token = canvas.tokens.placeables.find(t => t.id == rollData.tokenId)
if (rollData.defenderTokenId) {
let token = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
if (token) {
actor = token.actor
}
@@ -273,20 +273,17 @@ export class EcrymeUtility {
let canTranscendRoll = []
for (let i = 1; i <= 10; i++) {
canTranscendRoll[i] = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "rolldata")
//console.log(">>>>>>>>>>>>>>>>>>>>>>>>>> Menu !!!!", rollData)
if (rollData.skill && rollData.skill.value >= i && !rollData.transcendUsed && rollData.spec) {
return true
}
return false
return (rollData?.skill?.value >= i && !rollData.transcendUsed && rollData.spec)
}
options.push({
name: game.i18n.localize("ECRY.chat.spectranscend") + i,
icon: '<i class="fas fa-plus-square"></i>',
condition: canTranscendRoll[i],
callback: li => {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "rolldata")
EcrymeUtility.transcendFromSpec(rollData, i).catch("Error on Transcend")
}
@@ -297,27 +294,35 @@ export class EcrymeUtility {
/* -------------------------------------------- */
static async chatListeners(html) {
html.on("click", '.button-select-confront', event => {
$(html).on("click", '.button-select-confront', event => {
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "ecryme-rolldata")
ui.notifications.info( game.i18n.localize("ECRY.chat.confrontselect"))
ui.notifications.info(game.i18n.localize("ECRY.chat.confrontselect"))
EcrymeUtility.manageConfrontation(rollData)
})
html.on("click", '.button-apply-cephaly-difficulty', event => {
$(html).on("click", '.button-apply-cephaly-difficulty', event => {
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "ecryme-rolldata")
let difficulty = $("#" + rollData.rollId + "-cephaly-difficulty").val()
EcrymeUtility.manageCephalyDifficulty(rollData, difficulty)
})
html.on("click", '.button-apply-impact', event => {
$(html).on("click", '.button-apply-impact', event => {
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let actor = game.actors.get($(event.currentTarget).data("actor-id"))
let tokenId = $(event.currentTarget).data("token-id")
let actor
if (!tokenId) {
actorId = $(event.currentTarget).data("actor-id")
actor = game.actors.get(actorId)
} else {
let token = canvas.tokens.placeables.find(t => t.id == tokenId)
actor = token?.actor
}
actor.modifyImpact($(event.currentTarget).data("impact-type"), $(event.currentTarget).data("impact"), 1)
})
html.on("click", '.button-apply-bonus', event => {
$(html).on("click", '.button-apply-bonus', event => {
let messageId = EcrymeUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let actor = game.actors.get($(event.currentTarget).data("actor-id"))
@@ -339,7 +344,7 @@ export class EcrymeUtility {
'systems/fvtt-ecryme/templates/dialogs/partial-confront-bonus-area.hbs',
'systems/fvtt-ecryme/templates/actors/partial-impacts.hbs',
]
return loadTemplates(templatePaths);
return foundry.applications.handlebars.loadTemplates(templatePaths);
}
/* -------------------------------------------- */
@@ -414,7 +419,7 @@ export class EcrymeUtility {
console.log("SOCKET MESSAGE", msg)
if (msg.name == "msg_gm_chat_message") {
let rollData = msg.data.rollData
if ( game.user.isGM ) {
if (game.user.isGM) {
let chatMsg = await this.createChatMessage(rollData.alias, "blindroll", {
content: await renderTemplate(msg.data.template, rollData),
whisper: game.user.id
@@ -575,7 +580,7 @@ export class EcrymeUtility {
this.computeResults(rollData)
let msg = await this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-ecryme/templates/chat/chat-generic-result.hbs`, rollData)
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-ecryme/templates/chat/chat-generic-result.hbs`, rollData)
})
await msg.setFlag("world", "ecryme-rolldata", rollData)
console.log("Rolldata result", rollData)
@@ -718,11 +723,11 @@ export class EcrymeUtility {
/* -------------------------------------------- */
static async confirmDelete(actorSheet, li) {
let itemId = li.data("item-id");
let msgTxt = "<p>Are you sure to remove this Item ?";
let msgTxt = "<p>Etes vous certain de souhaiter envoyer cet item dans les limbes ?";
let buttons = {
delete: {
icon: '<i class="fas fa-check"></i>',
label: "Yes, remove it",
label: "Oui, retirez-le",
callback: () => {
actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
li.slideUp(200, () => actorSheet.render(false));
@@ -730,7 +735,7 @@ export class EcrymeUtility {
},
cancel: {
icon: '<i class="fas fa-times"></i>',
label: "Cancel"
label: "Annuler"
}
}
msgTxt += "</p>";

View File

@@ -12,7 +12,7 @@ export class EcrymeConfrontDialog extends Dialog {
width: 620, height: 'fit-content', 'z-index': 99999
});
let html = await renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-dialog.hbs', rollData);
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-dialog.hbs', rollData);
return new EcrymeConfrontDialog(actor, rollData, html, options);
}

View File

@@ -1,13 +1,16 @@
import { EcrymeUtility } from "../common/ecryme-utility.js";
import {EcrymeConfrontDialog } from "./ecryme-confront-dialog.js";
import { EcrymeConfrontDialog } from "./ecryme-confront-dialog.js";
export class EcrymeConfrontStartDialog extends Dialog {
/* -------------------------------------------- */
static async create(actor, rollData) {
if (!actor) throw new Error("Ecryme | No actor provided for confront dialog");
if (!rollData) throw new Error("Ecryme | No roll data provided for confront dialog");
if (actor?.token) rollData.tokenId = actor.token.id;
let options = { classes: ["fvtt-ecryme ecryme-confront-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
let html = await renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-start-dialog.hbs', rollData);
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-ecryme/templates/dialogs/confront-start-dialog.hbs', rollData);
return new EcrymeConfrontStartDialog(actor, rollData, html, options);
}
@@ -43,12 +46,12 @@ export class EcrymeConfrontStartDialog extends Dialog {
super(conf, options);
this.actor = actor;
this.actor = actor?.token?.actor || actor;
this.rollData = rollData;
}
/* -------------------------------------------- */
async rollConfront( diceFormula ) {
async rollConfront(diceFormula) {
// Do the initial roll
let myRoll = await new Roll(diceFormula).roll()
await EcrymeUtility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
@@ -57,7 +60,7 @@ export class EcrymeConfrontStartDialog extends Dialog {
rollData.roll = foundry.utils.duplicate(myRoll)
rollData.availableDices = []
for (let result of myRoll.terms[0].results) {
if ( !result.discarded) {
if (!result.discarded) {
let resultDup = foundry.utils.duplicate(result)
resultDup.location = "mainpool"
rollData.availableDices.push(resultDup)

View File

@@ -6,7 +6,7 @@ export class EcrymeRollDialog extends Dialog {
static async create(actor, rollData) {
let options = { classes: ["ecryme-roll-dialog"], width: 540, height: 'fit-content', 'z-index': 99999 }
let html = await renderTemplate('systems/fvtt-ecryme/templates/dialogs/roll-dialog-generic.hbs', rollData);
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-ecryme/templates/dialogs/roll-dialog-generic.hbs', rollData);
return new EcrymeRollDialog(actor, rollData, html, options);
}
@@ -52,7 +52,6 @@ export class EcrymeRollDialog extends Dialog {
activateListeners(html) {
super.activateListeners(html);
var dialog = this;
function onLoad() {
}
$(function () { onLoad(); });

View File

@@ -5,6 +5,7 @@
*/
/* -------------------------------------------- */
const ECRYME_WELCOME_MESSAGE_URL = "https://www.uberwald.me/gitea/public/fvtt-ecryme/raw/branch/master/welcome-message-ecryme.html"
/* -------------------------------------------- */
// Import Modules
@@ -57,28 +58,40 @@ Hooks.once("init", async function () {
/* -------------------------------------------- */
// Register sheet application classes
Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["pc"], makeDefault: true });
Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["npc"], makeDefault: true });
Actors.registerSheet("fvtt-ecryme", EcrymeAnnencySheet, { types: ["annency"], makeDefault: false });
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
foundry.documents.collections.Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["pc"], makeDefault: true });
foundry.documents.collections.Actors.registerSheet("fvtt-ecryme", EcrymeActorSheet, { types: ["npc"], makeDefault: true });
foundry.documents.collections.Actors.registerSheet("fvtt-ecryme", EcrymeAnnencySheet, { types: ["annency"], makeDefault: false });
Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("fvtt-ecryme", EcrymeItemSheet, { makeDefault: true });
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
foundry.documents.collections.Items.registerSheet("fvtt-ecryme", EcrymeItemSheet, { makeDefault: true });
EcrymeUtility.init()
Babele.get().setSystemTranslationsDir("translated")
});
/* -------------------------------------------- */
function welcomeMessage() {
if (game.user.isGM) {
ChatMessage.create({
user: game.user.id,
whisper: [game.user.id],
content: `<div id="welcome-message-ecryme"><span class="rdd-roll-part">
<strong>Bienvenu dans Ecryme !</strong>` });
// Try to fetch the welcome message from the github repo "welcome-message-ecryme.html"
fetch(ECRYME_WELCOME_MESSAGE_URL)
.then(response => response.text())
.then(html => {
//console.log("Fetched welcome message:", html);
ChatMessage.create({
user: game.user.id,
whisper: [game.user.id],
content: html
});
})
.catch(error => {
console.error("Error fetching welcome message:", error);
ChatMessage.create({
user: game.user.id,
whisper: [game.user.id],
content: "<b>Bienvenue dans Ecryme RPG !</b><br>Visitez le site officiel pour plus d'informations."
});
});
}
}
@@ -91,6 +104,7 @@ async function importDefaultScene() {
await game.scenes.documentClass.create(newDocuments);
game.scenes.find(i => i.name == "Landing page 1").activate();
}
}
/* -------------------------------------------- */
@@ -98,9 +112,6 @@ async function importDefaultScene() {
/* -------------------------------------------- */
Hooks.once("ready", function () {
// Load trranslations
Babele.get().setSystemTranslationsDir("translated")
// User warning
if (!game.user.isGM && game.user.character == undefined) {
ui.notifications.info("Attention ! Aucun personnage relié au joueur !");
@@ -124,6 +135,11 @@ Hooks.once("ready", function () {
})
/* -------------------------------------------- */
Hooks.once('babele.init', (babele) => {
babele.setSystemTranslationsDir("translated");
});
/* -------------------------------------------- */
/* Foundry VTT Initialization */
@@ -138,4 +154,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
}
return true;
});

View File

@@ -4,7 +4,7 @@ import { EcrymeUtility } from "../common/ecryme-utility.js";
* Extend the basic ItemSheet with some very simple modifications
* @extends {ItemSheet}
*/
export class EcrymeItemSheet extends ItemSheet {
export class EcrymeItemSheet extends foundry.appv1.sheets.ItemSheet {
/** @override */
static get defaultOptions() {
@@ -61,8 +61,8 @@ export class EcrymeItemSheet 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
}

Binary file not shown.

BIN
packs/equipment/000192.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000184
MANIFEST-000257

View File

@@ -1,7 +1,7 @@
2025/03/11-23:44:54.691022 7f24c57fa6c0 Recovering log #182
2025/03/11-23:44:54.761305 7f24c57fa6c0 Delete type=3 #180
2025/03/11-23:44:54.761368 7f24c57fa6c0 Delete type=0 #182
2025/03/11-23:45:54.472551 7f24c4bff6c0 Level-0 table #187: started
2025/03/11-23:45:54.472575 7f24c4bff6c0 Level-0 table #187: 0 bytes OK
2025/03/11-23:45:54.479092 7f24c4bff6c0 Delete type=0 #185
2025/03/11-23:45:54.491718 7f24c4bff6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
2026/02/17-22:52:51.783329 7f1e223fe6c0 Recovering log #255
2026/02/17-22:52:51.793345 7f1e223fe6c0 Delete type=3 #253
2026/02/17-22:52:51.793403 7f1e223fe6c0 Delete type=0 #255
2026/02/18-00:07:51.604423 7f1e20bfb6c0 Level-0 table #260: started
2026/02/18-00:07:51.604449 7f1e20bfb6c0 Level-0 table #260: 0 bytes OK
2026/02/18-00:07:51.610566 7f1e20bfb6c0 Delete type=0 #258
2026/02/18-00:07:51.628854 7f1e20bfb6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/03/11-23:33:32.501703 7f24c5ffb6c0 Recovering log #178
2025/03/11-23:33:32.511734 7f24c5ffb6c0 Delete type=3 #176
2025/03/11-23:33:32.511785 7f24c5ffb6c0 Delete type=0 #178
2025/03/11-23:44:47.591299 7f24c4bff6c0 Level-0 table #183: started
2025/03/11-23:44:47.591363 7f24c4bff6c0 Level-0 table #183: 0 bytes OK
2025/03/11-23:44:47.624590 7f24c4bff6c0 Delete type=0 #181
2025/03/11-23:44:47.748676 7f24c4bff6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)
2026/02/17-22:32:54.354370 7f1e213fc6c0 Recovering log #251
2026/02/17-22:32:54.365341 7f1e213fc6c0 Delete type=3 #249
2026/02/17-22:32:54.365467 7f1e213fc6c0 Delete type=0 #251
2026/02/17-22:51:18.237998 7f1e20bfb6c0 Level-0 table #256: started
2026/02/17-22:51:18.238020 7f1e20bfb6c0 Level-0 table #256: 0 bytes OK
2026/02/17-22:51:18.244001 7f1e20bfb6c0 Delete type=0 #254
2026/02/17-22:51:18.250338 7f1e20bfb6c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/help/000129.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000121
MANIFEST-000194

View File

@@ -1,8 +1,8 @@
2025/03/11-23:44:54.948819 7f24c67fc6c0 Recovering log #119
2025/03/11-23:44:55.014909 7f24c67fc6c0 Delete type=3 #117
2025/03/11-23:44:55.015006 7f24c67fc6c0 Delete type=0 #119
2025/03/11-23:45:54.515413 7f24c4bff6c0 Level-0 table #124: started
2025/03/11-23:45:54.515443 7f24c4bff6c0 Level-0 table #124: 0 bytes OK
2025/03/11-23:45:54.522097 7f24c4bff6c0 Delete type=0 #122
2025/03/11-23:45:54.522287 7f24c4bff6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2025/03/11-23:45:54.522303 7f24c4bff6c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2026/02/17-22:52:51.836522 7f1e213fc6c0 Recovering log #192
2026/02/17-22:52:51.846119 7f1e213fc6c0 Delete type=3 #190
2026/02/17-22:52:51.846206 7f1e213fc6c0 Delete type=0 #192
2026/02/18-00:07:51.788872 7f1e20bfb6c0 Level-0 table #197: started
2026/02/18-00:07:51.788909 7f1e20bfb6c0 Level-0 table #197: 0 bytes OK
2026/02/18-00:07:51.795266 7f1e20bfb6c0 Delete type=0 #195
2026/02/18-00:07:51.802266 7f1e20bfb6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2026/02/18-00:07:51.802303 7f1e20bfb6c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2025/03/11-23:33:32.552584 7f24c6ffd6c0 Recovering log #115
2025/03/11-23:33:32.563351 7f24c6ffd6c0 Delete type=3 #113
2025/03/11-23:33:32.563398 7f24c6ffd6c0 Delete type=0 #115
2025/03/11-23:44:47.842166 7f24c4bff6c0 Level-0 table #120: started
2025/03/11-23:44:47.842227 7f24c4bff6c0 Level-0 table #120: 0 bytes OK
2025/03/11-23:44:47.879285 7f24c4bff6c0 Delete type=0 #118
2025/03/11-23:44:47.922462 7f24c4bff6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2025/03/11-23:44:47.974424 7f24c4bff6c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2026/02/17-22:32:54.423305 7f1e21bfd6c0 Recovering log #188
2026/02/17-22:32:54.435381 7f1e21bfd6c0 Delete type=3 #186
2026/02/17-22:32:54.435516 7f1e21bfd6c0 Delete type=0 #188
2026/02/17-22:51:18.269462 7f1e20bfb6c0 Level-0 table #193: started
2026/02/17-22:51:18.269511 7f1e20bfb6c0 Level-0 table #193: 0 bytes OK
2026/02/17-22:51:18.276022 7f1e20bfb6c0 Delete type=0 #191
2026/02/17-22:51:18.276202 7f1e20bfb6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2026/02/17-22:51:18.276226 7f1e20bfb6c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/help/MANIFEST-000194 Normal file

Binary file not shown.

Binary file not shown.

BIN
packs/maneuvers/000192.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000184
MANIFEST-000257

View File

@@ -1,7 +1,7 @@
2025/03/11-23:44:54.883993 7f24c5ffb6c0 Recovering log #182
2025/03/11-23:44:54.946077 7f24c5ffb6c0 Delete type=3 #180
2025/03/11-23:44:54.946154 7f24c5ffb6c0 Delete type=0 #182
2025/03/11-23:45:54.498184 7f24c4bff6c0 Level-0 table #187: started
2025/03/11-23:45:54.498223 7f24c4bff6c0 Level-0 table #187: 0 bytes OK
2025/03/11-23:45:54.505537 7f24c4bff6c0 Delete type=0 #185
2025/03/11-23:45:54.522269 7f24c4bff6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
2026/02/17-22:52:51.822834 7f1e213fc6c0 Recovering log #255
2026/02/17-22:52:51.833307 7f1e213fc6c0 Delete type=3 #253
2026/02/17-22:52:51.833365 7f1e213fc6c0 Delete type=0 #255
2026/02/18-00:07:51.795405 7f1e20bfb6c0 Level-0 table #260: started
2026/02/18-00:07:51.795433 7f1e20bfb6c0 Level-0 table #260: 0 bytes OK
2026/02/18-00:07:51.802173 7f1e20bfb6c0 Delete type=0 #258
2026/02/18-00:07:51.802295 7f1e20bfb6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/03/11-23:33:32.540154 7f24c67fc6c0 Recovering log #178
2025/03/11-23:33:32.549680 7f24c67fc6c0 Delete type=3 #176
2025/03/11-23:33:32.549720 7f24c67fc6c0 Delete type=0 #178
2025/03/11-23:44:47.624705 7f24c4bff6c0 Level-0 table #183: started
2025/03/11-23:44:47.624728 7f24c4bff6c0 Level-0 table #183: 0 bytes OK
2025/03/11-23:44:47.667991 7f24c4bff6c0 Delete type=0 #181
2025/03/11-23:44:47.748692 7f24c4bff6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)
2026/02/17-22:32:54.407677 7f1e223fe6c0 Recovering log #251
2026/02/17-22:32:54.418634 7f1e223fe6c0 Delete type=3 #249
2026/02/17-22:32:54.418777 7f1e223fe6c0 Delete type=0 #251
2026/02/17-22:51:18.232103 7f1e20bfb6c0 Level-0 table #256: started
2026/02/17-22:51:18.232142 7f1e20bfb6c0 Level-0 table #256: 0 bytes OK
2026/02/17-22:51:18.237935 7f1e20bfb6c0 Delete type=0 #254
2026/02/17-22:51:18.250322 7f1e20bfb6c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/scenes/000090.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000068
MANIFEST-000143

View File

@@ -1,8 +1,8 @@
2025/03/11-23:44:54.826302 7f24c67fc6c0 Recovering log #66
2025/03/11-23:44:54.878873 7f24c67fc6c0 Delete type=3 #64
2025/03/11-23:44:54.879033 7f24c67fc6c0 Delete type=0 #66
2025/03/11-23:45:54.479218 7f24c4bff6c0 Level-0 table #71: started
2025/03/11-23:45:54.479246 7f24c4bff6c0 Level-0 table #71: 0 bytes OK
2025/03/11-23:45:54.485312 7f24c4bff6c0 Delete type=0 #69
2025/03/11-23:45:54.491727 7f24c4bff6c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
2025/03/11-23:45:54.491756 7f24c4bff6c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
2026/02/17-22:52:51.809397 7f1e22bff6c0 Recovering log #141
2026/02/17-22:52:51.819324 7f1e22bff6c0 Delete type=3 #139
2026/02/17-22:52:51.819396 7f1e22bff6c0 Delete type=0 #141
2026/02/18-00:07:51.772211 7f1e20bfb6c0 Level-0 table #146: started
2026/02/18-00:07:51.772244 7f1e20bfb6c0 Level-0 table #146: 0 bytes OK
2026/02/18-00:07:51.778644 7f1e20bfb6c0 Delete type=0 #144
2026/02/18-00:07:51.788854 7f1e20bfb6c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
2026/02/18-00:07:51.795394 7f1e20bfb6c0 Manual compaction at level-1 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2025/03/11-23:33:32.527497 7f24c6ffd6c0 Recovering log #62
2025/03/11-23:33:32.537450 7f24c6ffd6c0 Delete type=3 #60
2025/03/11-23:33:32.537513 7f24c6ffd6c0 Delete type=0 #62
2025/03/11-23:44:47.879398 7f24c4bff6c0 Level-0 table #67: started
2025/03/11-23:44:47.879423 7f24c4bff6c0 Level-0 table #67: 0 bytes OK
2025/03/11-23:44:47.922234 7f24c4bff6c0 Delete type=0 #65
2025/03/11-23:44:47.922483 7f24c4bff6c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
2025/03/11-23:44:47.974443 7f24c4bff6c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
2026/02/17-22:32:54.389501 7f1e21bfd6c0 Recovering log #137
2026/02/17-22:32:54.400905 7f1e21bfd6c0 Delete type=3 #135
2026/02/17-22:32:54.401049 7f1e21bfd6c0 Delete type=0 #137
2026/02/17-22:51:18.250480 7f1e20bfb6c0 Level-0 table #142: started
2026/02/17-22:51:18.250515 7f1e20bfb6c0 Level-0 table #142: 0 bytes OK
2026/02/17-22:51:18.256672 7f1e20bfb6c0 Delete type=0 #140
2026/02/17-22:51:18.276163 7f1e20bfb6c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
2026/02/17-22:51:18.276211 7f1e20bfb6c0 Manual compaction at level-1 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000184
MANIFEST-000257

View File

@@ -1,7 +1,7 @@
2025/03/11-23:44:54.615643 7f24c6ffd6c0 Recovering log #182
2025/03/11-23:44:54.688425 7f24c6ffd6c0 Delete type=3 #180
2025/03/11-23:44:54.688509 7f24c6ffd6c0 Delete type=0 #182
2025/03/11-23:45:54.466489 7f24c4bff6c0 Level-0 table #187: started
2025/03/11-23:45:54.466525 7f24c4bff6c0 Level-0 table #187: 0 bytes OK
2025/03/11-23:45:54.472451 7f24c4bff6c0 Delete type=0 #185
2025/03/11-23:45:54.491700 7f24c4bff6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
2026/02/17-22:52:51.771179 7f1e22bff6c0 Recovering log #255
2026/02/17-22:52:51.780607 7f1e22bff6c0 Delete type=3 #253
2026/02/17-22:52:51.780660 7f1e22bff6c0 Delete type=0 #255
2026/02/18-00:07:51.597957 7f1e20bfb6c0 Level-0 table #260: started
2026/02/18-00:07:51.597996 7f1e20bfb6c0 Level-0 table #260: 0 bytes OK
2026/02/18-00:07:51.604332 7f1e20bfb6c0 Delete type=0 #258
2026/02/18-00:07:51.628842 7f1e20bfb6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/03/11-23:33:32.488591 7f24c57fa6c0 Recovering log #178
2025/03/11-23:33:32.499216 7f24c57fa6c0 Delete type=3 #176
2025/03/11-23:33:32.499268 7f24c57fa6c0 Delete type=0 #178
2025/03/11-23:44:47.713953 7f24c4bff6c0 Level-0 table #183: started
2025/03/11-23:44:47.713983 7f24c4bff6c0 Level-0 table #183: 0 bytes OK
2025/03/11-23:44:47.748547 7f24c4bff6c0 Delete type=0 #181
2025/03/11-23:44:47.748713 7f24c4bff6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)
2026/02/17-22:32:54.337335 7f1e21bfd6c0 Recovering log #251
2026/02/17-22:32:54.348929 7f1e21bfd6c0 Delete type=3 #249
2026/02/17-22:32:54.349060 7f1e21bfd6c0 Delete type=0 #251
2026/02/17-22:51:18.224981 7f1e20bfb6c0 Level-0 table #256: started
2026/02/17-22:51:18.225046 7f1e20bfb6c0 Level-0 table #256: 0 bytes OK
2026/02/17-22:51:18.231994 7f1e20bfb6c0 Delete type=0 #254
2026/02/17-22:51:18.250311 7f1e20bfb6c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/traits/000192.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000184
MANIFEST-000257

View File

@@ -1,7 +1,7 @@
2025/03/11-23:44:54.764214 7f24c5ffb6c0 Recovering log #182
2025/03/11-23:44:54.823309 7f24c5ffb6c0 Delete type=3 #180
2025/03/11-23:44:54.823390 7f24c5ffb6c0 Delete type=0 #182
2025/03/11-23:45:54.485457 7f24c4bff6c0 Level-0 table #187: started
2025/03/11-23:45:54.485489 7f24c4bff6c0 Level-0 table #187: 0 bytes OK
2025/03/11-23:45:54.491568 7f24c4bff6c0 Delete type=0 #185
2025/03/11-23:45:54.491736 7f24c4bff6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
2026/02/17-22:52:51.796322 7f1e213fc6c0 Recovering log #255
2026/02/17-22:52:51.806414 7f1e213fc6c0 Delete type=3 #253
2026/02/17-22:52:51.806525 7f1e213fc6c0 Delete type=0 #255
2026/02/18-00:07:51.654710 7f1e20bfb6c0 Level-0 table #260: started
2026/02/18-00:07:51.654742 7f1e20bfb6c0 Level-0 table #260: 0 bytes OK
2026/02/18-00:07:51.660623 7f1e20bfb6c0 Delete type=0 #258
2026/02/18-00:07:51.660919 7f1e20bfb6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2025/03/11-23:33:32.514118 7f24c67fc6c0 Recovering log #178
2025/03/11-23:33:32.524830 7f24c67fc6c0 Delete type=3 #176
2025/03/11-23:33:32.525025 7f24c67fc6c0 Delete type=0 #178
2025/03/11-23:44:47.668164 7f24c4bff6c0 Level-0 table #183: started
2025/03/11-23:44:47.668203 7f24c4bff6c0 Level-0 table #183: 0 bytes OK
2025/03/11-23:44:47.713809 7f24c4bff6c0 Delete type=0 #181
2025/03/11-23:44:47.748703 7f24c4bff6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)
2026/02/17-22:32:54.371182 7f1e223fe6c0 Recovering log #251
2026/02/17-22:32:54.383451 7f1e223fe6c0 Delete type=3 #249
2026/02/17-22:32:54.383616 7f1e223fe6c0 Delete type=0 #251
2026/02/17-22:51:18.244080 7f1e20bfb6c0 Level-0 table #256: started
2026/02/17-22:51:18.244107 7f1e20bfb6c0 Level-0 table #256: 0 bytes OK
2026/02/17-22:51:18.250200 7f1e20bfb6c0 Delete type=0 #254
2026/02/17-22:51:18.250352 7f1e20bfb6c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -104,8 +104,8 @@
"license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-ecryme/raw/branch/master/system.json",
"compatibility": {
"minimum": "12",
"verified": "12"
"minimum": "13",
"verified": "13"
},
"id": "fvtt-ecryme",
"primaryTokenAttribute": "secondary.health",
@@ -125,7 +125,7 @@
},
"title": "Ecryme, le Jeu de Rôles",
"url": "https://www.uberwald.me/gitea/public/fvtt-ecryme",
"version": "12.0.3",
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v12.0.3.zip",
"version": "13.0.4",
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v13.0.4.zip",
"background": "systems/fvtt-ecryme/images/assets/ecryme_extract_panel_01.webp"
}

View File

@@ -15,7 +15,7 @@
<div>
<ul>
<li>Confrontation : {{rollData1.alias}} vs {{rollData2.alias}}</li>
<li><strong>Confrontation</strong> : {{rollData1.alias}} vs {{rollData2.alias}}</li>
<li>{{localize rollData1.skill.name}} ({{rollData1.skill.value}}) vs {{localize rollData2.skill.name}} ({{rollData2.skill.value}}) </li>
<li>{{rollData1.executionTotal}} vs {{rollData2.preservationTotal}} : {{marginExecution}}</li>
<li>{{rollData1.preservationTotal}} vs {{rollData2.executionTotal}} : {{marginPreservation}}</li>
@@ -32,21 +32,21 @@
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.execution"}} : {{effectExecution}}</li>
{{#if impactExecution}}
<li>Impact {{rollData2.alias}} : 1 {{localize (concat "ECRY.ui." impactExecution)}}</li>
<button class="button-apply-impact" data-actor-id="{{rollData2.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactExecution}}">{{localize "ECRY.ui.applyimpact"}}</button>
<button class="button-apply-impact" data-token-id="{{rollData2.tokenId}}" data-actor-id="{{rollData2.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactExecution}}">{{localize "ECRY.ui.applyimpact"}}</button>
{{/if}}
{{#if bonus2}}
<li>Bonus {{rollData2.alias}} : {{bonus2}}</li>
<button class="button-apply-bonus" data-actor-id="{{rollData2.actorId}}" data-bonus="{{bonus2}}">{{localize "ECRY.ui.applybonus"}}</button>
<button class="button-apply-bonus" data-token-id="{{rollData2.tokenId}}" data-actor-id="{{rollData2.actorId}}" data-bonus="{{bonus2}}">{{localize "ECRY.ui.applybonus"}}</button>
{{/if}}
<li>{{localize "ECRY.ui.effect"}} {{localize "ECRY.ui.preservation"}} : {{effectPreservation}}</li>
{{#if impactPreservation}}
<li>Impact {{rollData1.alias}} : 1 {{localize (concat "ECRY.ui." impactPreservation)}}</li>
<button class="button-apply-impact" data-actor-id="{{rollData1.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactPreservation}}">{{localize "ECRY.ui.applyimpact"}}</button>
<button class="button-apply-impact" data-token-id="{{rollData1.tokenId}}" data-actor-id="{{rollData1.actorId}}" data-impact-type={{rollData1.skill.categKey}} data-impact="{{impactPreservation}}">{{localize "ECRY.ui.applyimpact"}}</button>
{{/if}}
{{#if bonus1}}
<li>Bonus {{rollData1.alias}} : {{bonus1}}</li>
<button class="button-apply-bonus" data-actor-id="{{rollData1.actorId}}" data-bonus="{{bonus1}}">{{localize "ECRY.ui.applybonus"}}</button>
<button class="button-apply-bonus" data-token-id="{{rollData1.tokenId}}" data-actor-id="{{rollData1.actorId}}" data-bonus="{{bonus1}}">{{localize "ECRY.ui.applybonus"}}</button>
{{/if}}
</ul>
</div>

View File

@@ -0,0 +1,42 @@
<h3 class="welcome-message-h3">Bonjour à tous !</h3>
<div class="message-chat-center">
👋 Juste un petit message pour vous informer que :
<br />
<strong
>⚠️ Le nouveau financement participatif pour la prochaine extension
d'Écryme, LES SECRETS DE L'ÉCRYME ouvre le 21 octobre !</strong
>
</div>
<div class="message-chat-center">
⚠️ Suivez la page de pré-lancement ici pour être sûr de ne pas manquer le
lancement : <br /><a href="https://shorturl.at/qDjg7"
>https://shorturl.at/qDjg7</a
>
</div>
<div class="message-chat-center">
Nous avons aussi un nouveau Discord pour ceux ou celles qui souhaiteraient
participer plus activement à la communauté des jeux d'Open Sesame Games, avec
un espace dédié aux écrymiens ! <br />
Nouveaux joueurs comme vétérans sont les bienvenus, n'hésitez pas à passer
pour papoter, profiter de nos ressources, ou suivre les nouvelles d'OSG plus
directement. Cliquez ici :<br />
<a href="https://discord.gg/dUPhNfJdaD">https://discord.gg/dUPhNfJdaD</a
><br />
</div>
<div class="message-chat-center">
Ce système vous est proposé par Open Sesame Games.<br />
Vous trouverez de l'aide dans
@UUID[Compendium.fvtt-ecryme.help.JournalEntry.wooTFYjEwh83FwgT]{Aide pour
Ecryme}<br />
ainsi que sur le Discord de Foundry FR :<br>
<a href="https://discord.gg/pPSDNJk">https://discord.gg/pPSDNJk</a>
</div>
</div>
Merci pour votre attention et à très bientôt pour la suite ! L'équipe Open
Sesame Games
</div>