Compare commits

..

17 Commits

Author SHA1 Message Date
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 3168 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) {
// 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: `<div id="welcome-message-ecryme"><span class="rdd-roll-part">
<strong>Bienvenu dans Ecryme !</strong>` });
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 !");
@@ -122,6 +133,9 @@ Hooks.once("ready", function () {
EcrymeCharacterSummary.ready();
importDefaultScene();
// Load translations
Babele.get().setSystemTranslationsDir("translated")
})
@@ -138,4 +152,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-000241

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)
2025/10/17-15:30:30.745305 7f7b753f96c0 Recovering log #239
2025/10/17-15:30:30.799430 7f7b753f96c0 Delete type=3 #237
2025/10/17-15:30:30.799501 7f7b753f96c0 Delete type=0 #239
2025/10/17-15:38:10.264480 7f7b6f3ff6c0 Level-0 table #244: started
2025/10/17-15:38:10.264510 7f7b6f3ff6c0 Level-0 table #244: 0 bytes OK
2025/10/17-15:38:10.271838 7f7b6f3ff6c0 Delete type=0 #242
2025/10/17-15:38:10.286239 7f7b6f3ff6c0 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)
2025/10/17-15:00:21.595853 7f7b75bfa6c0 Recovering log #235
2025/10/17-15:00:21.649813 7f7b75bfa6c0 Delete type=3 #233
2025/10/17-15:00:21.649870 7f7b75bfa6c0 Delete type=0 #235
2025/10/17-15:19:41.013969 7f7b6f3ff6c0 Level-0 table #240: started
2025/10/17-15:19:41.014009 7f7b6f3ff6c0 Level-0 table #240: 0 bytes OK
2025/10/17-15:19:41.021013 7f7b6f3ff6c0 Delete type=0 #238
2025/10/17-15:19:41.041182 7f7b6f3ff6c0 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-000178

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)
2025/10/17-15:30:30.971906 7f7b75bfa6c0 Recovering log #176
2025/10/17-15:30:31.026021 7f7b75bfa6c0 Delete type=3 #174
2025/10/17-15:30:31.026086 7f7b75bfa6c0 Delete type=0 #176
2025/10/17-15:38:10.306636 7f7b6f3ff6c0 Level-0 table #181: started
2025/10/17-15:38:10.306674 7f7b6f3ff6c0 Level-0 table #181: 0 bytes OK
2025/10/17-15:38:10.313150 7f7b6f3ff6c0 Delete type=0 #179
2025/10/17-15:38:10.313296 7f7b6f3ff6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2025/10/17-15:38:10.313313 7f7b6f3ff6c0 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)
2025/10/17-15:00:21.833480 7f7b74bf86c0 Recovering log #172
2025/10/17-15:00:21.882268 7f7b74bf86c0 Delete type=3 #170
2025/10/17-15:00:21.882323 7f7b74bf86c0 Delete type=0 #172
2025/10/17-15:19:41.054674 7f7b6f3ff6c0 Level-0 table #177: started
2025/10/17-15:19:41.054706 7f7b6f3ff6c0 Level-0 table #177: 0 bytes OK
2025/10/17-15:19:41.060762 7f7b6f3ff6c0 Delete type=0 #175
2025/10/17-15:19:41.066886 7f7b6f3ff6c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2025/10/17-15:19:41.066920 7f7b6f3ff6c0 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-000178 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-000241

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)
2025/10/17-15:30:30.916441 7f7b6ffff6c0 Recovering log #239
2025/10/17-15:30:30.969161 7f7b6ffff6c0 Delete type=3 #237
2025/10/17-15:30:30.969226 7f7b6ffff6c0 Delete type=0 #239
2025/10/17-15:38:10.293308 7f7b6f3ff6c0 Level-0 table #244: started
2025/10/17-15:38:10.293344 7f7b6f3ff6c0 Level-0 table #244: 0 bytes OK
2025/10/17-15:38:10.299936 7f7b6f3ff6c0 Delete type=0 #242
2025/10/17-15:38:10.313277 7f7b6f3ff6c0 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)
2025/10/17-15:00:21.772351 7f7b753f96c0 Recovering log #235
2025/10/17-15:00:21.831028 7f7b753f96c0 Delete type=3 #233
2025/10/17-15:00:21.831106 7f7b753f96c0 Delete type=0 #235
2025/10/17-15:19:41.021157 7f7b6f3ff6c0 Level-0 table #240: started
2025/10/17-15:19:41.021192 7f7b6f3ff6c0 Level-0 table #240: 0 bytes OK
2025/10/17-15:19:41.028272 7f7b6f3ff6c0 Delete type=0 #238
2025/10/17-15:19:41.041197 7f7b6f3ff6c0 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-000127

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)
2025/10/17-15:30:30.864236 7f7b75bfa6c0 Recovering log #125
2025/10/17-15:30:30.913603 7f7b75bfa6c0 Delete type=3 #123
2025/10/17-15:30:30.913658 7f7b75bfa6c0 Delete type=0 #125
2025/10/17-15:38:10.278555 7f7b6f3ff6c0 Level-0 table #130: started
2025/10/17-15:38:10.278587 7f7b6f3ff6c0 Level-0 table #130: 0 bytes OK
2025/10/17-15:38:10.286086 7f7b6f3ff6c0 Delete type=0 #128
2025/10/17-15:38:10.286263 7f7b6f3ff6c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
2025/10/17-15:38:10.286292 7f7b6f3ff6c0 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)
2025/10/17-15:00:21.717758 7f7b74bf86c0 Recovering log #121
2025/10/17-15:00:21.769008 7f7b74bf86c0 Delete type=3 #119
2025/10/17-15:00:21.769070 7f7b74bf86c0 Delete type=0 #121
2025/10/17-15:19:41.060844 7f7b6f3ff6c0 Level-0 table #126: started
2025/10/17-15:19:41.060869 7f7b6f3ff6c0 Level-0 table #126: 0 bytes OK
2025/10/17-15:19:41.066791 7f7b6f3ff6c0 Delete type=0 #124
2025/10/17-15:19:41.066893 7f7b6f3ff6c0 Manual compaction at level-0 from '!scenes!DDibQQLAvyIq9y09' @ 72057594037927935 : 1 .. '!scenes!zvY1RwBhTfwdZIBa' @ 0 : 0; will stop at (end)
2025/10/17-15:19:41.066927 7f7b6f3ff6c0 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-000241

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)
2025/10/17-15:30:30.682022 7f7b75bfa6c0 Recovering log #239
2025/10/17-15:30:30.742602 7f7b75bfa6c0 Delete type=3 #237
2025/10/17-15:30:30.742693 7f7b75bfa6c0 Delete type=0 #239
2025/10/17-15:38:10.271948 7f7b6f3ff6c0 Level-0 table #244: started
2025/10/17-15:38:10.271975 7f7b6f3ff6c0 Level-0 table #244: 0 bytes OK
2025/10/17-15:38:10.278425 7f7b6f3ff6c0 Delete type=0 #242
2025/10/17-15:38:10.286252 7f7b6f3ff6c0 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)
2025/10/17-15:00:21.537451 7f7b74bf86c0 Recovering log #235
2025/10/17-15:00:21.591584 7f7b74bf86c0 Delete type=3 #233
2025/10/17-15:00:21.591645 7f7b74bf86c0 Delete type=0 #235
2025/10/17-15:19:41.028380 7f7b6f3ff6c0 Level-0 table #240: started
2025/10/17-15:19:41.028403 7f7b6f3ff6c0 Level-0 table #240: 0 bytes OK
2025/10/17-15:19:41.034791 7f7b6f3ff6c0 Delete type=0 #238
2025/10/17-15:19:41.041211 7f7b6f3ff6c0 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-000241

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)
2025/10/17-15:30:30.802095 7f7b6ffff6c0 Recovering log #239
2025/10/17-15:30:30.861659 7f7b6ffff6c0 Delete type=3 #237
2025/10/17-15:30:30.861731 7f7b6ffff6c0 Delete type=0 #239
2025/10/17-15:38:10.258105 7f7b6f3ff6c0 Level-0 table #244: started
2025/10/17-15:38:10.258177 7f7b6f3ff6c0 Level-0 table #244: 0 bytes OK
2025/10/17-15:38:10.264342 7f7b6f3ff6c0 Delete type=0 #242
2025/10/17-15:38:10.286223 7f7b6f3ff6c0 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)
2025/10/17-15:00:21.652305 7f7b753f96c0 Recovering log #235
2025/10/17-15:00:21.715259 7f7b753f96c0 Delete type=3 #233
2025/10/17-15:00:21.715340 7f7b753f96c0 Delete type=0 #235
2025/10/17-15:19:41.034921 7f7b6f3ff6c0 Level-0 table #240: started
2025/10/17-15:19:41.034948 7f7b6f3ff6c0 Level-0 table #240: 0 bytes OK
2025/10/17-15:19:41.041045 7f7b6f3ff6c0 Delete type=0 #238
2025/10/17-15:19:41.041223 7f7b6f3ff6c0 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.3",
"download": "https://www.uberwald.me/gitea/public/fvtt-ecryme/archive/fvtt-ecryme-v13.0.3.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>