9 Commits

Author SHA1 Message Date
ac481e0dd9 Various minot fixes
All checks were successful
Release Creation / build (release) Successful in 1m18s
2025-10-30 20:24:24 +00:00
375622d900 Add welcome message 2025-10-17 15:31:32 +02:00
3bc055cc1f Add welcome message 2025-10-17 15:28:15 +02:00
c97b7a4889 Correction sur blessures et actions restantes
All checks were successful
Release Creation / build (release) Successful in 53s
2025-10-16 22:59:32 +02:00
5d13500838 Fix sur combat + mains gauche
All checks were successful
Release Creation / build (release) Successful in 43s
2025-09-24 16:43:52 +02:00
d21515e1e3 Fix sur combat + mains gauche 2025-09-24 16:43:40 +02:00
78ef009465 Fix sur combat + mains gauche 2025-09-24 16:42:08 +02:00
e794611bf3 Gestion assistée pour les actions
All checks were successful
Release Creation / build (release) Successful in 46s
2025-09-24 15:11:58 +02:00
529a62045e Gestion assistée pour les actions 2025-09-24 15:09:00 +02:00
85 changed files with 2665 additions and 1891 deletions

View File

@@ -77,6 +77,31 @@ export class TeDeumActor extends Actor {
return 0
}
/* -------------------------------------------- */
getMeilleureCompetenceMainGauche(comp) {
let compScore = this.getCompetenceScore(comp.name)
let mainGaucheScore = this.getCompetenceScore("main gauche")
if (mainGaucheScore < compScore) {
ui.notifications.info(`${this.name} : Utilisation de la compétence Main Gauche au lieu de ${comp.name}`)
let mainGaucheComp = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "main gauche")
if (!mainGaucheComp) {
// Create a fake competence object
mainGaucheComp = foundry.utils.duplicate(comp)
mainGaucheComp.name = "Main Gauche"
mainGaucheComp.system.isBase = false
mainGaucheComp.system.score = 0
mainGaucheComp.system.caracteristique = "adresse"
mainGaucheComp.system.description = "Compétence Main Gauche (automatique)"
mainGaucheComp.system.isMainGauche = true
return mainGaucheComp
} else {
return mainGaucheComp
}
} else {
return comp
}
}
/* -------------------------------------------- */
_onUpdate(changed, options, userId) {
let updates = []
@@ -116,12 +141,6 @@ export class TeDeumActor extends Actor {
updates.push({ _id: initiative.id, "system.score": Number(newScore) })
}
let actionsTour = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "actions/tour")
newScore = this.getCommonBaseValue(this.system.caracteristiques.adresse.value)
if (actionsTour && actionsTour?.system.score != newScore) {
updates.push({ _id: actionsTour.id, "system.score": Number(newScore) })
}
let effort = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "effort")
newScore = this.getCommonBaseValue(this.system.caracteristiques.puissance.value)
if (effort && effort?.system.score != newScore) {
@@ -151,7 +170,7 @@ export class TeDeumActor extends Actor {
getCommonBaseValue(value) {
return game.system.tedeum.config.COMMON_VALUE[value]?.value || 0
}
getInitiative() {
getInitiativeValue() {
return game.system.tedeum.config.COMMON_VALUE[this.system.caracteristiques.adresse.value]?.value || 0
}
/* -------------------------------------------- */
@@ -616,21 +635,16 @@ export class TeDeumActor extends Actor {
/* -------------------------------------------- */
getInitiativeScore() {
let initiative = this.items.find(it => it.type == "competence" && it.name.toLowerCase() == "initiative")
initiative = foundry.utils.duplicate(initiative)
let initiative = this.getInitiativeValue()
// Vérifie les armes avec bonus d'initiative
let armes = this.getArmes()
for (let arme of armes) {
if (arme.system.equipe && arme.system.bonusInitiative != 0) {
ui.notifications.info("L'arme " + arme.name + " vous confère un bonus d'initiative de " + arme.system.bonusInitiative)
initiative.system.score += 1
if (arme.system.equipe && Number(arme.system.initiativeBonus) && Number(arme.system.initiativeBonus) != 0) {
ui.notifications.info("L'arme " + arme.name + " vous confère un bonus d'initiative de " + arme.system.initiativeBonus)
initiative += arme.system.initiativeBonus
}
}
if (initiative) {
return initiative.system.score
}
ui.notifications.warn("Impossible de trouver la compétence Initiative pour l'acteur " + this.name)
return -1;
return initiative
}
/* -------------------------------------------- */

View File

@@ -2,20 +2,44 @@ import { TeDeumUtility } from "../common/tedeum-utility.js";
/* -------------------------------------------- */
export class TeDeumCombat extends Combat {
/* -------------------------------------------- */
async rollInitiative(ids, formula = undefined, messageOptions = {} ) {
async rollInitiative(ids, formula = undefined, messageOptions = {}) {
//console.log("Roll INIT !")
ids = typeof ids === "string" ? [ids] : ids;
for (let cId of ids) {
const c = this.combatants.get(cId);
let initBonus = c.actor ? c.actor.getInitiativeScore( this.id, cId ) : -1;
await this.updateEmbeddedDocuments("Combatant", [ { _id: cId, initiative: initBonus } ]);
let initBonus = c.actor ? c.actor.getInitiativeScore(this.id, cId) : -1;
console.log("Init Bonus : ", c.name, initBonus)
await this.updateEmbeddedDocuments("Combatant", [{ _id: cId, initiative: initBonus }]);
}
return this;
}
/* -------------------------------------------- */
async modifyAction(combatantId, delta, isMainGauche = false) {
let combatant = this.combatants.get(combatantId)
if (!combatant) return;
let ca = combatant.getFlag("world", "available-actions")
if (!ca) {
ca = { nbActions: 1, nbActionsMainGauche: 0 }
}
if (isMainGauche) {
ca.nbActionsMainGauche += delta
} else {
ca.nbActions += delta
}
if (ca.nbActionsMainGauche < 0) ca.nbActionsMainGauche = 0
if (ca.nbActions < 0) ca.nbActions = 0
console.log("Modify Action : ", combatant.name, ca)
if (game.user.isGM) {
await TeDeumUtility.updateCombatantActions(combatant, ca)
} else {
game.socket.emit("system.fvtt-te-deum", { msg: "msg_modify_combat_action", data: { combatantId: combatantId, ca: ca } })
}
}
/* -------------------------------------------- */
static async checkTurnPosition() {
while (game.combat.turn > 0) {

View File

@@ -59,11 +59,11 @@ export const TEDEUM_CONFIG = {
},
ARME_PORTEES: {
"brulepourpoint": { label: "Brûle-pourpoint", difficulty: "facile", id: "brulepourpoint" },
"courte": { label: "Courte", difficulty: "pardefaut", id: "courte" },
"moyenne": { label: "Moyenne", difficulty: "difficile", id: "moyenne" },
"longue": { label: "Longue", difficulty: "perilleux", id: "longue" },
"extreme": { label: "Extrême", difficulty: "desespere", id: "extreme" },
"brulepourpoint": { label: "Brûle-pourpoint (5)", difficulty: "facile", id: "brulepourpoint" },
"courte": { label: "Courte (7)", difficulty: "pardefaut", id: "courte" },
"moyenne": { label: "Moyenne (11)", difficulty: "difficile", id: "moyenne" },
"longue": { label: "Longue (13)", difficulty: "perilleux", id: "longue" },
"extreme": { label: "Extrême (15)", difficulty: "desespere", id: "extreme" },
},
genre: {
@@ -168,13 +168,13 @@ export const TEDEUM_CONFIG = {
},
difficulte: {
aucune: { label: "Aucune", key: "aucune", value: 0 },
routine: { label: "Routine", key: "routine", value: 3 },
facile: { label: "Facile", key: "facile", value: 5 },
pardefaut: { label: "Par Défaut", key: "pardefaut", value: 7 },
malaise: { label: "Malaisé", key: "malaise", value: 9 },
difficile: { label: "Difficile", key: "difficile", value: 11 },
perilleux: { label: "Perilleux", key: "perilleux", value: 13 },
desespere: { label: "Désespéré", key: "desespere", value: 15 }
routine: { label: "Routine (3)", key: "routine", value: 3 },
facile: { label: "Facile (5)", key: "facile", value: 5 },
pardefaut: { label: "Par Défaut (7)", key: "pardefaut", value: 7 },
malaise: { label: "Malaisé (9)", key: "malaise", value: 9 },
difficile: { label: "Difficile (11)", key: "difficile", value: 11 },
perilleux: { label: "Perilleux (13)", key: "perilleux", value: 13 },
desespere: { label: "Désespéré (15)", key: "desespere", value: 15 }
},
monnaie: {
denier: { label: "Deniers", id: "denier", value: 1 },

View File

@@ -1,6 +1,8 @@
/* -------------------------------------------- */
/* -------------------------------------------- */
const ECRYME_WELCOME_MESSAGE_URL = "https://www.uberwald.me/gitea/public/fvtt-te-deum/raw/branch/main/welcome-message-tedeum.html"
export class TeDeumUtility {
/* -------------------------------------------- */
@@ -12,7 +14,9 @@ export class TeDeumUtility {
CONFIG.JournalEntry.compendiumBanner = "systems/fvtt-te-deum/images/ui/compendium_banner.webp"
CONFIG.Macro.compendiumBanner = "systems/fvtt-te-deum/images/ui/compendium_banner.webp"
CONFIG.Adventure.compendiumBanner = "systems/fvtt-te-deum/images/ui/compendium_banner.webp"
}
static installHooks() {
Hooks.on('renderChatLog', (log, html, data) => TeDeumUtility.chatListeners(html));
Hooks.on("renderActorDirectory", (app, html, data) => {
@@ -28,7 +32,47 @@ export class TeDeumUtility {
$(html).find('.header-actions').after(button)
}
})
//Hooks.on("getChatLogEntryContext", (html, options) => TeDeumUtility.chatMenuManager(html, options));
Hooks.on("combatStart", async (combat, updateData, options) => {
this.resetCombatActions(combat)
});
Hooks.on("combatRound", (combat, updateData, updateOptions) => {
// List all actors related to combatant
if (game.user.isGM) {
this.resetCombatActions(combat)
}
})
Hooks.on("getCombatTrackerContextOptions", (html, options) => {
console.log("Get Combat Tracker Context", html, options)
this.pushCombatOptions(html, options);
});
}
/* -------------------------------------------- */
static pushCombatOptions(html, options) {
options.push({ name: "Actions +1", condition: true, icon: '<i class="fas fa-plus"></i>', callback: target => { game.combat.modifyAction($(target).data('combatant-id'), 1); } })
options.push({ name: "Actions -1", condition: true, icon: '<i class="fas fa-minus"></i>', callback: target => { game.combat.modifyAction($(target).data('combatant-id'), -1); } })
options.push({ name: "Actions MG +1", condition: true, icon: '<i class="fas fa-plus"></i>', callback: target => { game.combat.modifyAction($(target).data('combatant-id'), 1, true); } })
options.push({ name: "Actions MG -1", condition: true, icon: '<i class="fas fa-minus"></i>', callback: target => { game.combat.modifyAction($(target).data('combatant-id'), -1, true); } })
}
/* -------------------------------------------- */
static async resetCombatActions(combat) {
if (game.user.isGM) {
for (let c of combat.combatants) {
let actor = game.actors.get(c.actorId)
if (actor) {
let nbActions = actor.getNbActions()?.value || 0
let isMainGauche = (actor.getCompetenceScore("Main gauche") > 0)
let nbActionsMainGauche = isMainGauche ? nbActions : 0
await c.setFlag("world", "available-actions", { nbActions, nbActionsMainGauche })
await c.update({ name: `${c.token.name} (${nbActions} / ${nbActionsMainGauche})` })
}
}
}
}
/* -------------------------------------------- */
@@ -127,14 +171,25 @@ export class TeDeumUtility {
/* -------------------------------------------- */
static welcomeMessage() {
if (game.user.isGM) {
ChatMessage.create({
user: game.user.id,
whisper: [game.user.id],
content: `<div id="chat-welcome welcome-message-tedeum"><span class="rdd-roll-part">
<strong>Bienvenu dans Te Deum Pour Un Massacre !</strong>
<div class="chat-welcome">Ce système vous est proposé par Open Sesame Games.<br>
Vous trouverez de l'aide dans @UUID[Compendium.fvtt-te-deum.aides.JournalEntry.uNwJgi4kXBCiZmAH]{Aide pour Te Deum}<br>
ainsi que sur le Discord de Foundry FR : https://discord.gg/pPSDNJk</div>` });
// 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."
});
});
}
}
@@ -201,7 +256,7 @@ export class TeDeumUtility {
return actor
}
/* -------------------------------------------- */ /* -------------------------------------------- */
/* -------------------------------------------- */
static async manageOpposition(rollData) {
if (!this.currentOpposition) {
// Store rollData as current GM opposition
@@ -210,12 +265,15 @@ export class TeDeumUtility {
} else {
// Perform the opposition
let isAttackWinner = true
let rWinner = this.currentOpposition
let rLooser = rollData
if (rWinner.total <= rLooser.total) {
rWinner = rollData
rLooser = this.currentOpposition
let rWinner, rLooser
if (this.currentOpposition.total <= rollData.total) {
rWinner = foundry.utils.duplicate(rollData)
rLooser = foundry.utils.duplicate(this.currentOpposition)
isAttackWinner = false
} else {
rWinner = foundry.utils.duplicate(this.currentOpposition)
rLooser = foundry.utils.duplicate(rollData)
isAttackWinner = true
}
this.currentOpposition = undefined // Reset opposition
let oppositionData = {
@@ -247,7 +305,6 @@ export class TeDeumUtility {
await this.appliquerDegats(rWinner)
}
console.log("Opposition result", rollData, isAttackWinner, oppositionData)
}
}
@@ -258,7 +315,12 @@ export class TeDeumUtility {
let defenderToken = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
if (defenderToken) {
let actor = defenderToken.actor
await actor.appliquerDegats(rollData)
if (game.user.isGM || actor.isOwner) {
await actor.appliquerDegats(rollData)
} else {
// Send a socket message
game.socket.emit("system.fvtt-te-deum", { name: "msg_apply_damage", data: { rollData } });
}
// Attaque naturelle avec dégats inférieur à -2
if ((rollData?.arme?.system.specificites?.poing?.hasSpec || rollData?.arme?.system.specificites?.pied?.hasSpec) && rollData.degats < -2) {
let attacker = this.getActorFromRollData(rollData)
@@ -394,6 +456,28 @@ export class TeDeumUtility {
chatMsg.setFlag("world", "tedeum-rolldata", rollData)
}
}
if (msg.name == "msg_modify_combat_action") {
if (game.user.isGM) {
let { combatantId, ca } = msg.data
let combatant = game.combat.combatants.get(combatantId)
if (combatant) {
console.log("sock - Modify Combat Action : ", combatant.name, ca)
await TeDeumUtility.updateCombatantActions(combatant, ca)
}
}
}
if (msg.name == "msg_apply_damage") {
if (game.user.isGM) {
let rollData = msg.data.rollData
let defenderToken = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId)
if (defenderToken) {
let actor = defenderToken.actor
await actor.appliquerDegats(rollData)
} else {
ui.notifications.error("Impossible de trouver la cible de l'attaque, aucun degats appliqué")
}
}
}
}
/* -------------------------------------------- */
@@ -570,12 +654,51 @@ export class TeDeumUtility {
await this.getLocalisation(rollData)
// Now the degats
let degatsRoll = await new Roll(rollData.arme.system.degats).roll()
await this.showDiceSoNice(rollData.degatsRoll, game.settings.get("core", "rollMode"))
await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
rollData.degats = degatsRoll.total
}
}
/* -------------------------------------------- */
static async updateCombatantActions(combatant, ca) {
await combatant.setFlag("world", "available-actions", ca)
await combatant.update({ name: `${combatant.token.name} (${ca.nbActions} / ${ca.nbActionsMainGauche})` })
}
/* -------------------------------------------- */
static async manageCombatActions(actor, rollData) {
let combat = game.combats.active
if (!combat) return;
let combatant = combat.getCombatantByActor(actor)
if (!combatant) return;
let ca = combatant.getFlag("world", "available-actions")
if (!ca) return;
if (rollData.mode == "arme" && rollData.isMainGauche) {
if (ca.nbActionsMainGauche > 0) {
ca.nbActionsMainGauche -= 1
ca.nbActions = Math.max(ca.nbActions - 1, 0)
} else {
ui.notifications.error(`${actor.name} n'a plus d'actions disponibles à la main gauche pour ce round`)
}
}
if (ca.nbActions > 0) {
ca.nbActions -= 1
} else {
ui.notifications.error(`${actor.name} n'a plus d'actions disponibles pour ce round`)
}
console.log("Manage combat actions 1", actor.name, combatant)
if (game.user.isGM) {
await this.updateCombatantActions(combatant, ca)
} else {
// Send a socket message
game.socket.emit("system.fvtt-te-deum", { name: "msg_modify_combat_action", data: { combatantId: combatant.id, ca } });
}
rollData.hasActions = true
rollData.remainingActions = ca.nbActions
rollData.remainingActionsMainGauche = ca.nbActionsMainGauche
}
/* -------------------------------------------- */
static async rollTeDeum(rollData) {
@@ -585,8 +708,12 @@ export class TeDeumUtility {
rollData.difficulty = "pardefaut"
}
rollData.difficulty = game.system.tedeum.config.difficulte[rollData.difficulty].value
// Compute the real competence score
if (rollData.competence) {
if (rollData.isMainGauche) {
rollData.competence = actor.getMeilleureCompetenceMainGauche(rollData.competence)
}
if (rollData.competence.system.isBase) {
rollData.compScore = actor.system.caracteristiques[rollData.competence.system.caracteristique].value
} else {
@@ -609,6 +736,8 @@ export class TeDeumUtility {
await this.processAttaqueDistance(rollData)
await this.manageCombatActions(actor, rollData)
let msg = await this.createChatWithRollMode(rollData.alias, {
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-generic-result.hbs`, rollData)
})

View File

@@ -1,17 +1,17 @@
export class TeDeumArmeSchema extends foundry.abstract.TypeDataModel {
export class TeDeumArmeSchema extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
const requiredInteger = { required: true, nullable: false, integer: true };
const requiredDouble = { required: true, nullable: false, integer: false };
const schema = {};
schema.typeArme = new fields.StringField({required: true, choices: ["melee", "tir"], initial: "melee"});
schema.allonge = new fields.StringField({required: true, choices: ["courte", "moyenne", "longue", "treslongue"], initial: "courte"});
schema.typeArme = new fields.StringField({ required: true, choices: ["melee", "tir"], initial: "melee" });
schema.allonge = new fields.StringField({ required: true, choices: ["courte", "moyenne", "longue", "treslongue"], initial: "courte" });
schema.specificites = new fields.SchemaField(
Object.values((game.system.tedeum.config.ARME_SPECIFICITE)).reduce((obj, spec) => {
obj[spec.id] = new fields.SchemaField({
hasSpec: new fields.BooleanField({initial: false}),
hasSpec: new fields.BooleanField({ initial: false }),
});
return obj;
}, {})
@@ -26,35 +26,35 @@ export class TeDeumArmeSchema extends foundry.abstract.TypeDataModel {
}, {})
);
schema.degatsArmure = new fields.SchemaField( {
sansarmure : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
cuir : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
plates : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
mailles : new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
schema.degatsArmure = new fields.SchemaField({
sansarmure: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
cuir: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
plates: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
mailles: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
});
schema.tempsRecharge = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
schema.competenceRecharge = new fields.StringField({ required: false, choices:["aucune", "archerie", "arquebusade"], initial: "aucune", blank: true });
schema.competenceRecharge = new fields.StringField({ required: false, choices: ["aucune", "archerie", "arquebusade"], initial: "aucune", blank: true });
schema.valeurEchecCritique = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 });
schema.initiativeBonus = new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 });
schema.initiativeBonus = new fields.NumberField({ ...requiredInteger, initial: 0 });
schema.degats = new fields.StringField({ required: false, blank: true, initial: "0" });
schema.degatscrosse = new fields.StringField({ required: false, blank: true, initial: "0" });
let comp = []
for (let key of Object.keys(game.system.tedeum.config.armeCompetences)) {
comp.push(key);
}
schema.competence = new fields.StringField({ required: true, choices:comp, initial: "bagarre" });
schema.competence2 = new fields.StringField({ required: false, choices:comp, initial: "", blank: true });
schema.competence = new fields.StringField({ required: true, choices: comp, initial: "bagarre" });
schema.competence2 = new fields.StringField({ required: false, choices: comp, initial: "", blank: true });
schema.prix = new fields.NumberField({ ...requiredDouble, initial: 0, min: 0 });
schema.monnaie = new fields.StringField({ required: true, blank: false, initial: "denier" });
schema.equipe = new fields.BooleanField({initial: false}),
schema.description = new fields.HTMLField({ required: true, blank: true });
schema.equipe = new fields.BooleanField({ initial: false }),
schema.description = new fields.HTMLField({ required: true, blank: true });
return schema;
}

View File

@@ -63,6 +63,9 @@ export class TeDeumRollDialog extends Dialog {
html.find('#roll-allonge').change((event) => {
this.rollData.allongeId = event.currentTarget.value
})
html.find('#roll-main-gauche').change((event) => {
this.rollData.isMainGauche = event.currentTarget.checked
})
html.find('#roll-difficulty').change((event) => {
this.rollData.difficulty = String(event.currentTarget.value) || "pardefaut"
})

View File

@@ -90,6 +90,8 @@ Hooks.once("init", async function () {
foundry.documents.collections.Items.registerSheet("fvtt-te-deum", TeDeumItemSheet, { makeDefault: true });
TeDeumUtility.init()
TeDeumUtility.installHooks()
});
@@ -98,6 +100,7 @@ Hooks.once("init", async function () {
/* -------------------------------------------- */
Hooks.once("ready", function () {
// User warning
if (!game.user.isGM && game.user.character == undefined) {
ui.notifications.info("Attention ! Aucun personnage relié au joueur !");
@@ -107,10 +110,10 @@ Hooks.once("ready", function () {
});
}
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter => {
console.log("ClassCounter loaded", moduleCounter)
moduleCounter.ClassCounter.registerUsageCount()
}).catch(err=>
}).catch(err =>
console.log("No stats available, giving up.")
)
TeDeumUtility.ready();

View File

@@ -1 +1 @@
MANIFEST-000137
MANIFEST-000198

View File

@@ -1,7 +1,7 @@
2025/09/18-17:25:25.945688 7f7f2affd6c0 Recovering log #134
2025/09/18-17:25:25.962577 7f7f2affd6c0 Delete type=3 #132
2025/09/18-17:25:25.962629 7f7f2affd6c0 Delete type=0 #134
2025/09/18-17:25:58.096205 7f7f29bff6c0 Level-0 table #140: started
2025/09/18-17:25:58.096281 7f7f29bff6c0 Level-0 table #140: 0 bytes OK
2025/09/18-17:25:58.103314 7f7f29bff6c0 Delete type=0 #138
2025/09/18-17:25:58.103571 7f7f29bff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
2025/10/30-20:18:48.111835 7fee88ff86c0 Recovering log #196
2025/10/30-20:18:48.158268 7fee88ff86c0 Delete type=3 #194
2025/10/30-20:18:48.158356 7fee88ff86c0 Delete type=0 #196
2025/10/30-20:24:05.126356 7fee837fe6c0 Level-0 table #201: started
2025/10/30-20:24:05.126390 7fee837fe6c0 Level-0 table #201: 0 bytes OK
2025/10/30-20:24:05.132701 7fee837fe6c0 Delete type=0 #199
2025/10/30-20:24:05.133022 7fee837fe6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)

View File

@@ -1,11 +1,7 @@
2025/09/18-11:50:45.746719 7f7f2bfff6c0 Delete type=3 #1
2025/09/18-17:24:09.744265 7f7f29bff6c0 Level-0 table #135: started
2025/09/18-17:24:09.744308 7f7f29bff6c0 Level-0 table #135: 0 bytes OK
2025/09/18-17:24:09.802551 7f7f29bff6c0 Delete type=0 #133
2025/09/18-17:24:09.802767 7f7f29bff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 25 : 1
2025/09/18-17:24:09.802780 7f7f29bff6c0 Compacting 1@0 + 0@1 files
2025/09/18-17:24:09.830358 7f7f29bff6c0 Generated table #136@0: 5 keys, 3728 bytes
2025/09/18-17:24:09.830408 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 3728 bytes
2025/09/18-17:24:09.891222 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/09/18-17:24:09.891483 7f7f29bff6c0 Delete type=2 #103
2025/09/18-17:24:10.130709 7f7f29bff6c0 Manual compaction at level-0 from '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 25 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)
2025/10/20-22:38:45.481103 7f88a77fe6c0 Recovering log #192
2025/10/20-22:38:45.491194 7f88a77fe6c0 Delete type=3 #190
2025/10/20-22:38:45.491267 7f88a77fe6c0 Delete type=0 #192
2025/10/20-22:43:34.530590 7f88a53ff6c0 Level-0 table #197: started
2025/10/20-22:43:34.530642 7f88a53ff6c0 Level-0 table #197: 0 bytes OK
2025/10/20-22:43:34.536818 7f88a53ff6c0 Delete type=0 #195
2025/10/20-22:43:34.536957 7f88a53ff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/aides/MANIFEST-000198 Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000240
MANIFEST-000301

View File

@@ -1,7 +1,7 @@
2025/09/18-17:25:25.808742 7f7f2bfff6c0 Recovering log #237
2025/09/18-17:25:25.826162 7f7f2bfff6c0 Delete type=3 #235
2025/09/18-17:25:25.826217 7f7f2bfff6c0 Delete type=0 #237
2025/09/18-17:25:58.034192 7f7f29bff6c0 Level-0 table #243: started
2025/09/18-17:25:58.034230 7f7f29bff6c0 Level-0 table #243: 0 bytes OK
2025/09/18-17:25:58.040524 7f7f29bff6c0 Delete type=0 #241
2025/09/18-17:25:58.047737 7f7f29bff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
2025/10/30-20:18:47.606004 7fee88ff86c0 Recovering log #299
2025/10/30-20:18:47.659734 7fee88ff86c0 Delete type=3 #297
2025/10/30-20:18:47.659812 7fee88ff86c0 Delete type=0 #299
2025/10/30-20:24:05.080609 7fee837fe6c0 Level-0 table #304: started
2025/10/30-20:24:05.080662 7fee837fe6c0 Level-0 table #304: 0 bytes OK
2025/10/30-20:24:05.087374 7fee837fe6c0 Delete type=0 #302
2025/10/30-20:24:05.104712 7fee837fe6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)

View File

@@ -1,11 +1,7 @@
2025/09/18-11:50:45.598190 7f7f2a7fc6c0 Delete type=3 #1
2025/09/18-17:24:08.419689 7f7f29bff6c0 Level-0 table #238: started
2025/09/18-17:24:08.419727 7f7f29bff6c0 Level-0 table #238: 0 bytes OK
2025/09/18-17:24:08.484925 7f7f29bff6c0 Delete type=0 #236
2025/09/18-17:24:08.766692 7f7f29bff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at '!items!wxIHkrq98eQ3cOvp' @ 73 : 1
2025/09/18-17:24:08.766704 7f7f29bff6c0 Compacting 1@0 + 0@1 files
2025/09/18-17:24:08.800723 7f7f29bff6c0 Generated table #239@0: 38 keys, 31247 bytes
2025/09/18-17:24:08.800756 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 31247 bytes
2025/09/18-17:24:08.859553 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/09/18-17:24:08.859745 7f7f29bff6c0 Delete type=2 #206
2025/09/18-17:24:08.860015 7f7f29bff6c0 Manual compaction at level-0 from '!items!wxIHkrq98eQ3cOvp' @ 73 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
2025/10/20-22:38:45.384370 7f88a67fc6c0 Recovering log #295
2025/10/20-22:38:45.394880 7f88a67fc6c0 Delete type=3 #293
2025/10/20-22:38:45.394943 7f88a67fc6c0 Delete type=0 #295
2025/10/20-22:43:34.456260 7f88a53ff6c0 Level-0 table #300: started
2025/10/20-22:43:34.456288 7f88a53ff6c0 Level-0 table #300: 0 bytes OK
2025/10/20-22:43:34.462274 7f88a53ff6c0 Delete type=0 #298
2025/10/20-22:43:34.475907 7f88a53ff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/armes/MANIFEST-000301 Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000239
MANIFEST-000300

View File

@@ -1,7 +1,14 @@
2025/09/18-17:25:25.829687 7f7f2a7fc6c0 Recovering log #236
2025/09/18-17:25:25.846790 7f7f2a7fc6c0 Delete type=3 #234
2025/09/18-17:25:25.846846 7f7f2a7fc6c0 Delete type=0 #236
2025/09/18-17:25:58.026302 7f7f29bff6c0 Level-0 table #242: started
2025/09/18-17:25:58.026357 7f7f29bff6c0 Level-0 table #242: 0 bytes OK
2025/09/18-17:25:58.034035 7f7f29bff6c0 Delete type=0 #240
2025/09/18-17:25:58.047715 7f7f29bff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
2025/10/30-20:18:47.667302 7fee89ffa6c0 Recovering log #298
2025/10/30-20:18:47.723105 7fee89ffa6c0 Delete type=3 #296
2025/10/30-20:18:47.723199 7fee89ffa6c0 Delete type=0 #298
2025/10/30-20:24:05.064187 7fee837fe6c0 Level-0 table #303: started
2025/10/30-20:24:05.067385 7fee837fe6c0 Level-0 table #303: 1456 bytes OK
2025/10/30-20:24:05.073499 7fee837fe6c0 Delete type=0 #301
2025/10/30-20:24:05.093844 7fee837fe6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at '!items!Z0vD0CnxAXb5FK3p' @ 57 : 1
2025/10/30-20:24:05.093857 7fee837fe6c0 Compacting 1@0 + 1@1 files
2025/10/30-20:24:05.097233 7fee837fe6c0 Generated table #304@0: 29 keys, 12276 bytes
2025/10/30-20:24:05.097264 7fee837fe6c0 Compacted 1@0 + 1@1 files => 12276 bytes
2025/10/30-20:24:05.104037 7fee837fe6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/10/30-20:24:05.104241 7fee837fe6c0 Delete type=2 #279
2025/10/30-20:24:05.104553 7fee837fe6c0 Delete type=2 #303
2025/10/30-20:24:05.104756 7fee837fe6c0 Manual compaction at level-0 from '!items!Z0vD0CnxAXb5FK3p' @ 57 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)

View File

@@ -1,11 +1,7 @@
2025/09/18-11:50:45.617997 7f7f2a7fc6c0 Delete type=3 #1
2025/09/18-17:24:08.294497 7f7f29bff6c0 Level-0 table #237: started
2025/09/18-17:24:08.294539 7f7f29bff6c0 Level-0 table #237: 0 bytes OK
2025/09/18-17:24:08.351872 7f7f29bff6c0 Delete type=0 #235
2025/09/18-17:24:08.582142 7f7f29bff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at '!items!ufvhWG5V8pX0qrtR' @ 54 : 1
2025/09/18-17:24:08.582154 7f7f29bff6c0 Compacting 1@0 + 0@1 files
2025/09/18-17:24:08.616167 7f7f29bff6c0 Generated table #238@0: 29 keys, 12111 bytes
2025/09/18-17:24:08.616198 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 12111 bytes
2025/09/18-17:24:08.671918 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/09/18-17:24:08.672212 7f7f29bff6c0 Delete type=2 #205
2025/09/18-17:24:08.859972 7f7f29bff6c0 Manual compaction at level-0 from '!items!ufvhWG5V8pX0qrtR' @ 54 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
2025/10/20-22:38:45.398424 7f88a5ffb6c0 Recovering log #294
2025/10/20-22:38:45.409565 7f88a5ffb6c0 Delete type=3 #292
2025/10/20-22:38:45.409638 7f88a5ffb6c0 Delete type=0 #294
2025/10/20-22:43:34.462377 7f88a53ff6c0 Level-0 table #299: started
2025/10/20-22:43:34.462405 7f88a53ff6c0 Level-0 table #299: 0 bytes OK
2025/10/20-22:43:34.468563 7f88a53ff6c0 Delete type=0 #297
2025/10/20-22:43:34.475918 7f88a53ff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000238
MANIFEST-000299

View File

@@ -1,7 +1,7 @@
2025/09/18-17:25:25.789090 7f7f2b7fe6c0 Recovering log #235
2025/09/18-17:25:25.805571 7f7f2b7fe6c0 Delete type=3 #233
2025/09/18-17:25:25.805686 7f7f2b7fe6c0 Delete type=0 #235
2025/09/18-17:25:58.040659 7f7f29bff6c0 Level-0 table #241: started
2025/09/18-17:25:58.040687 7f7f29bff6c0 Level-0 table #241: 0 bytes OK
2025/09/18-17:25:58.047473 7f7f29bff6c0 Delete type=0 #239
2025/09/18-17:25:58.047759 7f7f29bff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
2025/10/30-20:18:47.533535 7fee83fff6c0 Recovering log #297
2025/10/30-20:18:47.588558 7fee83fff6c0 Delete type=3 #295
2025/10/30-20:18:47.588691 7fee83fff6c0 Delete type=0 #297
2025/10/30-20:24:05.087512 7fee837fe6c0 Level-0 table #302: started
2025/10/30-20:24:05.087542 7fee837fe6c0 Level-0 table #302: 0 bytes OK
2025/10/30-20:24:05.093717 7fee837fe6c0 Delete type=0 #300
2025/10/30-20:24:05.104733 7fee837fe6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)

View File

@@ -1,11 +1,7 @@
2025/09/18-11:50:45.576078 7f7f2affd6c0 Delete type=3 #1
2025/09/18-17:24:08.352040 7f7f29bff6c0 Level-0 table #236: started
2025/09/18-17:24:08.352081 7f7f29bff6c0 Level-0 table #236: 0 bytes OK
2025/09/18-17:24:08.419524 7f7f29bff6c0 Delete type=0 #234
2025/09/18-17:24:08.672479 7f7f29bff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at '!items!yx4k7lQHGcom99mk' @ 237 : 1
2025/09/18-17:24:08.672498 7f7f29bff6c0 Compacting 1@0 + 0@1 files
2025/09/18-17:24:08.706074 7f7f29bff6c0 Generated table #237@0: 115 keys, 38139 bytes
2025/09/18-17:24:08.706156 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 38139 bytes
2025/09/18-17:24:08.766397 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/09/18-17:24:08.766527 7f7f29bff6c0 Delete type=2 #231
2025/09/18-17:24:08.859995 7f7f29bff6c0 Manual compaction at level-0 from '!items!yx4k7lQHGcom99mk' @ 237 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
2025/10/20-22:38:45.369087 7f88a77fe6c0 Recovering log #293
2025/10/20-22:38:45.378744 7f88a77fe6c0 Delete type=3 #291
2025/10/20-22:38:45.378814 7f88a77fe6c0 Delete type=0 #293
2025/10/20-22:43:34.468664 7f88a53ff6c0 Level-0 table #298: started
2025/10/20-22:43:34.468688 7f88a53ff6c0 Level-0 table #298: 0 bytes OK
2025/10/20-22:43:34.475781 7f88a53ff6c0 Delete type=0 #296
2025/10/20-22:43:34.475927 7f88a53ff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000249
MANIFEST-000310

View File

@@ -1,7 +1,14 @@
2025/09/18-17:25:25.849643 7f7f2affd6c0 Recovering log #246
2025/09/18-17:25:25.865539 7f7f2affd6c0 Delete type=3 #244
2025/09/18-17:25:25.865600 7f7f2affd6c0 Delete type=0 #246
2025/09/18-17:25:58.061760 7f7f29bff6c0 Level-0 table #252: started
2025/09/18-17:25:58.061807 7f7f29bff6c0 Level-0 table #252: 0 bytes OK
2025/09/18-17:25:58.069452 7f7f29bff6c0 Delete type=0 #250
2025/09/18-17:25:58.076019 7f7f29bff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
2025/10/30-20:18:47.729266 7fee83fff6c0 Recovering log #308
2025/10/30-20:18:47.838564 7fee83fff6c0 Delete type=3 #306
2025/10/30-20:18:47.838645 7fee83fff6c0 Delete type=0 #308
2025/10/30-20:24:05.139878 7fee837fe6c0 Level-0 table #313: started
2025/10/30-20:24:05.143788 7fee837fe6c0 Level-0 table #313: 5933 bytes OK
2025/10/30-20:24:05.150257 7fee837fe6c0 Delete type=0 #311
2025/10/30-20:24:05.167769 7fee837fe6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at '!items!v4mzjKOYibOsJ9Wn' @ 516 : 1
2025/10/30-20:24:05.167783 7fee837fe6c0 Compacting 1@0 + 1@1 files
2025/10/30-20:24:05.175449 7fee837fe6c0 Generated table #314@0: 71 keys, 264301 bytes
2025/10/30-20:24:05.175485 7fee837fe6c0 Compacted 1@0 + 1@1 files => 264301 bytes
2025/10/30-20:24:05.182651 7fee837fe6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/10/30-20:24:05.182920 7fee837fe6c0 Delete type=2 #289
2025/10/30-20:24:05.183329 7fee837fe6c0 Delete type=2 #313
2025/10/30-20:24:05.183569 7fee837fe6c0 Manual compaction at level-0 from '!items!v4mzjKOYibOsJ9Wn' @ 516 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)

View File

@@ -1,11 +1,7 @@
2025/09/18-11:50:45.638850 7f7f2bfff6c0 Delete type=3 #1
2025/09/18-17:24:08.232941 7f7f29bff6c0 Level-0 table #247: started
2025/09/18-17:24:08.233014 7f7f29bff6c0 Level-0 table #247: 0 bytes OK
2025/09/18-17:24:08.294274 7f7f29bff6c0 Delete type=0 #245
2025/09/18-17:24:08.485079 7f7f29bff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at '!items!zGlRtP7zSnkjuuue' @ 510 : 1
2025/09/18-17:24:08.485093 7f7f29bff6c0 Compacting 1@0 + 0@1 files
2025/09/18-17:24:08.521894 7f7f29bff6c0 Generated table #248@0: 71 keys, 264331 bytes
2025/09/18-17:24:08.521971 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 264331 bytes
2025/09/18-17:24:08.581818 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/09/18-17:24:08.581947 7f7f29bff6c0 Delete type=2 #231
2025/09/18-17:24:08.859951 7f7f29bff6c0 Manual compaction at level-0 from '!items!zGlRtP7zSnkjuuue' @ 510 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
2025/10/20-22:38:45.412732 7f88a77fe6c0 Recovering log #304
2025/10/20-22:38:45.422278 7f88a77fe6c0 Delete type=3 #302
2025/10/20-22:38:45.422357 7f88a77fe6c0 Delete type=0 #304
2025/10/20-22:43:34.450000 7f88a53ff6c0 Level-0 table #309: started
2025/10/20-22:43:34.450073 7f88a53ff6c0 Level-0 table #309: 0 bytes OK
2025/10/20-22:43:34.456130 7f88a53ff6c0 Delete type=0 #307
2025/10/20-22:43:34.475895 7f88a53ff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

0
packs/graces/000302.log Normal file
View File

View File

@@ -1 +1 @@
MANIFEST-000239
MANIFEST-000300

View File

@@ -1,7 +1,7 @@
2025/09/18-17:25:25.869600 7f7f2b7fe6c0 Recovering log #236
2025/09/18-17:25:25.884627 7f7f2b7fe6c0 Delete type=3 #234
2025/09/18-17:25:25.884728 7f7f2b7fe6c0 Delete type=0 #236
2025/09/18-17:25:58.019852 7f7f29bff6c0 Level-0 table #242: started
2025/09/18-17:25:58.019893 7f7f29bff6c0 Level-0 table #242: 0 bytes OK
2025/09/18-17:25:58.026069 7f7f29bff6c0 Delete type=0 #240
2025/09/18-17:25:58.047683 7f7f29bff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
2025/10/30-20:18:47.860314 7fee897f96c0 Recovering log #298
2025/10/30-20:18:47.913091 7fee897f96c0 Delete type=3 #296
2025/10/30-20:18:47.913276 7fee897f96c0 Delete type=0 #298
2025/10/30-20:24:05.073687 7fee837fe6c0 Level-0 table #303: started
2025/10/30-20:24:05.073741 7fee837fe6c0 Level-0 table #303: 0 bytes OK
2025/10/30-20:24:05.080367 7fee837fe6c0 Delete type=0 #301
2025/10/30-20:24:05.104689 7fee837fe6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)

View File

@@ -1,11 +1,7 @@
2025/09/18-11:50:45.661051 7f7f2b7fe6c0 Delete type=3 #1
2025/09/18-17:24:08.860133 7f7f29bff6c0 Level-0 table #237: started
2025/09/18-17:24:08.860169 7f7f29bff6c0 Level-0 table #237: 0 bytes OK
2025/09/18-17:24:08.917842 7f7f29bff6c0 Delete type=0 #235
2025/09/18-17:24:09.119729 7f7f29bff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at '!items!zUYIVOuFpRur9aAR' @ 109 : 1
2025/09/18-17:24:09.119743 7f7f29bff6c0 Compacting 1@0 + 0@1 files
2025/09/18-17:24:09.155742 7f7f29bff6c0 Generated table #238@0: 49 keys, 20052 bytes
2025/09/18-17:24:09.155788 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 20052 bytes
2025/09/18-17:24:09.214820 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/09/18-17:24:09.214942 7f7f29bff6c0 Delete type=2 #205
2025/09/18-17:24:09.499501 7f7f29bff6c0 Manual compaction at level-0 from '!items!zUYIVOuFpRur9aAR' @ 109 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
2025/10/20-22:38:45.426760 7f88a67fc6c0 Recovering log #294
2025/10/20-22:38:45.437521 7f88a67fc6c0 Delete type=3 #292
2025/10/20-22:38:45.437578 7f88a67fc6c0 Delete type=0 #294
2025/10/20-22:43:34.481978 7f88a53ff6c0 Level-0 table #299: started
2025/10/20-22:43:34.482001 7f88a53ff6c0 Level-0 table #299: 0 bytes OK
2025/10/20-22:43:34.488034 7f88a53ff6c0 Delete type=0 #297
2025/10/20-22:43:34.501875 7f88a53ff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

View File

View File

@@ -1 +1 @@
MANIFEST-000239
MANIFEST-000300

View File

@@ -1,7 +1,7 @@
2025/09/18-17:25:25.887557 7f7f2a7fc6c0 Recovering log #236
2025/09/18-17:25:25.903745 7f7f2a7fc6c0 Delete type=3 #234
2025/09/18-17:25:25.903805 7f7f2a7fc6c0 Delete type=0 #236
2025/09/18-17:25:58.055681 7f7f29bff6c0 Level-0 table #242: started
2025/09/18-17:25:58.055706 7f7f29bff6c0 Level-0 table #242: 0 bytes OK
2025/09/18-17:25:58.061636 7f7f29bff6c0 Delete type=0 #240
2025/09/18-17:25:58.076006 7f7f29bff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
2025/10/30-20:18:47.916696 7fee89ffa6c0 Recovering log #298
2025/10/30-20:18:47.966821 7fee89ffa6c0 Delete type=3 #296
2025/10/30-20:18:47.966944 7fee89ffa6c0 Delete type=0 #298
2025/10/30-20:24:05.104925 7fee837fe6c0 Level-0 table #303: started
2025/10/30-20:24:05.104996 7fee837fe6c0 Level-0 table #303: 0 bytes OK
2025/10/30-20:24:05.112111 7fee837fe6c0 Delete type=0 #301
2025/10/30-20:24:05.132946 7fee837fe6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)

View File

@@ -1,11 +1,7 @@
2025/09/18-11:50:45.681692 7f7f2affd6c0 Delete type=3 #1
2025/09/18-17:24:08.917988 7f7f29bff6c0 Level-0 table #237: started
2025/09/18-17:24:08.918018 7f7f29bff6c0 Level-0 table #237: 0 bytes OK
2025/09/18-17:24:08.983600 7f7f29bff6c0 Delete type=0 #235
2025/09/18-17:24:09.215118 7f7f29bff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at '!items!ysGehYm1VkMWrI22' @ 71 : 1
2025/09/18-17:24:09.215131 7f7f29bff6c0 Compacting 1@0 + 0@1 files
2025/09/18-17:24:09.251613 7f7f29bff6c0 Generated table #238@0: 17 keys, 11517 bytes
2025/09/18-17:24:09.251694 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 11517 bytes
2025/09/18-17:24:09.305026 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/09/18-17:24:09.305314 7f7f29bff6c0 Delete type=2 #205
2025/09/18-17:24:09.499516 7f7f29bff6c0 Manual compaction at level-0 from '!items!ysGehYm1VkMWrI22' @ 71 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
2025/10/20-22:38:45.440391 7f88a6ffd6c0 Recovering log #294
2025/10/20-22:38:45.450539 7f88a6ffd6c0 Delete type=3 #292
2025/10/20-22:38:45.450600 7f88a6ffd6c0 Delete type=0 #294
2025/10/20-22:43:34.476040 7f88a53ff6c0 Level-0 table #299: started
2025/10/20-22:43:34.476068 7f88a53ff6c0 Level-0 table #299: 0 bytes OK
2025/10/20-22:43:34.481903 7f88a53ff6c0 Delete type=0 #297
2025/10/20-22:43:34.501865 7f88a53ff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

0
packs/scenes/000239.log Normal file
View File

View File

@@ -1 +1 @@
MANIFEST-000176
MANIFEST-000237

View File

@@ -1,7 +1,7 @@
2025/09/18-17:25:25.926154 7f7f2b7fe6c0 Recovering log #173
2025/09/18-17:25:25.941736 7f7f2b7fe6c0 Delete type=3 #171
2025/09/18-17:25:25.941811 7f7f2b7fe6c0 Delete type=0 #173
2025/09/18-17:25:58.069595 7f7f29bff6c0 Level-0 table #179: started
2025/09/18-17:25:58.069627 7f7f29bff6c0 Level-0 table #179: 0 bytes OK
2025/09/18-17:25:58.075769 7f7f29bff6c0 Delete type=0 #177
2025/09/18-17:25:58.076032 7f7f29bff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
2025/10/30-20:18:48.043058 7fee83fff6c0 Recovering log #235
2025/10/30-20:18:48.100398 7fee83fff6c0 Delete type=3 #233
2025/10/30-20:18:48.100494 7fee83fff6c0 Delete type=0 #235
2025/10/30-20:24:05.118858 7fee837fe6c0 Level-0 table #240: started
2025/10/30-20:24:05.118895 7fee837fe6c0 Level-0 table #240: 0 bytes OK
2025/10/30-20:24:05.126205 7fee837fe6c0 Delete type=0 #238
2025/10/30-20:24:05.132999 7fee837fe6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)

View File

@@ -1,11 +1,7 @@
2025/09/18-11:50:45.725670 7f7f2a7fc6c0 Delete type=3 #1
2025/09/18-17:24:09.049574 7f7f29bff6c0 Level-0 table #174: started
2025/09/18-17:24:09.049607 7f7f29bff6c0 Level-0 table #174: 0 bytes OK
2025/09/18-17:24:09.119551 7f7f29bff6c0 Delete type=0 #172
2025/09/18-17:24:09.404507 7f7f29bff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at '!scenes!FJXugdbkBpEJEdR6' @ 5 : 1
2025/09/18-17:24:09.404524 7f7f29bff6c0 Compacting 1@0 + 0@1 files
2025/09/18-17:24:09.434413 7f7f29bff6c0 Generated table #175@0: 1 keys, 1344 bytes
2025/09/18-17:24:09.434448 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 1344 bytes
2025/09/18-17:24:09.499220 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/09/18-17:24:09.499350 7f7f29bff6c0 Delete type=2 #142
2025/09/18-17:24:09.499541 7f7f29bff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 5 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
2025/10/20-22:38:45.466574 7f88a67fc6c0 Recovering log #231
2025/10/20-22:38:45.477284 7f88a67fc6c0 Delete type=3 #229
2025/10/20-22:38:45.477341 7f88a67fc6c0 Delete type=0 #231
2025/10/20-22:43:34.495773 7f88a53ff6c0 Level-0 table #236: started
2025/10/20-22:43:34.495801 7f88a53ff6c0 Level-0 table #236: 0 bytes OK
2025/10/20-22:43:34.501743 7f88a53ff6c0 Delete type=0 #234
2025/10/20-22:43:34.501890 7f88a53ff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

0
packs/simples/000303.log Normal file
View File

View File

@@ -1 +1 @@
MANIFEST-000240
MANIFEST-000301

View File

@@ -1,7 +1,7 @@
2025/09/18-17:25:25.906336 7f7f2bfff6c0 Recovering log #237
2025/09/18-17:25:25.922455 7f7f2bfff6c0 Delete type=3 #235
2025/09/18-17:25:25.922542 7f7f2bfff6c0 Delete type=0 #237
2025/09/18-17:25:58.047930 7f7f29bff6c0 Level-0 table #243: started
2025/09/18-17:25:58.048063 7f7f29bff6c0 Level-0 table #243: 0 bytes OK
2025/09/18-17:25:58.055551 7f7f29bff6c0 Delete type=0 #241
2025/09/18-17:25:58.075985 7f7f29bff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
2025/10/30-20:18:47.970822 7fee88ff86c0 Recovering log #299
2025/10/30-20:18:48.023766 7fee88ff86c0 Delete type=3 #297
2025/10/30-20:18:48.023869 7fee88ff86c0 Delete type=0 #299
2025/10/30-20:24:05.112322 7fee837fe6c0 Level-0 table #304: started
2025/10/30-20:24:05.112357 7fee837fe6c0 Level-0 table #304: 0 bytes OK
2025/10/30-20:24:05.118656 7fee837fe6c0 Delete type=0 #302
2025/10/30-20:24:05.132978 7fee837fe6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)

View File

@@ -1,11 +1,7 @@
2025/09/18-11:50:45.701807 7f7f2a7fc6c0 Delete type=3 #1
2025/09/18-17:24:08.983751 7f7f29bff6c0 Level-0 table #238: started
2025/09/18-17:24:08.983779 7f7f29bff6c0 Level-0 table #238: 0 bytes OK
2025/09/18-17:24:09.049421 7f7f29bff6c0 Delete type=0 #236
2025/09/18-17:24:09.305611 7f7f29bff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at '!items!zs67k4sxCid6oTK3' @ 80 : 1
2025/09/18-17:24:09.305631 7f7f29bff6c0 Compacting 1@0 + 0@1 files
2025/09/18-17:24:09.339316 7f7f29bff6c0 Generated table #239@0: 36 keys, 20892 bytes
2025/09/18-17:24:09.339411 7f7f29bff6c0 Compacted 1@0 + 0@1 files => 20892 bytes
2025/09/18-17:24:09.404093 7f7f29bff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2025/09/18-17:24:09.404255 7f7f29bff6c0 Delete type=2 #218
2025/09/18-17:24:09.499531 7f7f29bff6c0 Manual compaction at level-0 from '!items!zs67k4sxCid6oTK3' @ 80 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
2025/10/20-22:38:45.453322 7f88a77fe6c0 Recovering log #295
2025/10/20-22:38:45.462900 7f88a77fe6c0 Delete type=3 #293
2025/10/20-22:38:45.462956 7f88a77fe6c0 Delete type=0 #295
2025/10/20-22:43:34.488213 7f88a53ff6c0 Level-0 table #300: started
2025/10/20-22:43:34.488242 7f88a53ff6c0 Level-0 table #300: 0 bytes OK
2025/10/20-22:43:34.495670 7f88a53ff6c0 Delete type=0 #298
2025/10/20-22:43:34.501883 7f88a53ff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -18,8 +18,10 @@
<div>
<ul>
<li><strong>{{alias}}</strong> attaque <strong>{{defenderName}}</strong></li>
{{#if arme}}
<label class="chat-weapon-name">Dégats {{arme.name}} : {{degats}} ({{degatsFormula}})</label>
<li><label class="chat-weapon-name">Dégats {{arme.name}} : {{degats}} ({{degatsFormula}})</label></li>
{{/if}}
{{#if loc}}
<li>Localisation : {{loc.label}}</li>
@@ -41,27 +43,29 @@
<li><strong class="chat-result-success">Réussite critique : La blessure a été augmentée d'un niveau</strong></li>
{{/if}}
{{#if blessure}}
<li>{{defenderName}} a subi une blessure!</li>
<li><strong>{{defenderName}} a subi une blessure!</strong></li>
<li>Gravité : {{blessure.name}}</li>
{{#if (eq loc.categorie "tete")}}
{{#if (gt blessure.system.value 0)}}
<li><strong class="chat-result-warning">{{alias}} doit réussir un test d'Endurance de difficulté 7 ou être
assomé</strong></li>
<li><strong class="chat-result-warning">{{defenderName}} doit réussir un test d'Endurance de difficulté 7 ou être
assommé</strong></li>
{{/if}}
{{/if}}
{{#if (eq loc.categorie "bras")}}
{{#if (gt blessure.system.value 2)}}
<li><strong class="chat-result-warning">{{alias}} lache l'objet tenu par son bras. Il doit faire un test d'endurance
<li><strong class="chat-result-warning">{{defenderName}} lache l'objet tenu par son bras. Il doit faire un test
d'endurance
pour l'utiliser désormais.</strong></li>
{{/if}}
{{/if}}
{{#if (eq loc.categorie "jambe")}}
{{#if (gt blessure.system.value 2)}}
<li><strong class="chat-result-warning">{{alias}} tombe au sol. Pour se relever et marcher, il doit réussir un test
<li><strong class="chat-result-warning">{{defenderName}} tombe au sol. Pour se relever et marcher, il doit réussir
un test
d'Endurance à chaque tour.
</strong></li>
{{/if}}
@@ -69,14 +73,16 @@
{{#if (eq loc.categorie "main")}}
{{#if (gt blessure.system.value 1)}}
<li><strong class="chat-result-warning">{{alias}} lache l'objet tenu par sa main. Il doit faire un test d'endurance
<li><strong class="chat-result-warning">{{defenderName}} lache l'objet tenu par sa main. Il doit faire un test
d'endurance
pour l'utiliser désormais.</strong></li>
{{/if}}
{{/if}}
{{#if (eq loc.categorie "pied")}}
{{#if (gt blessure.system.value 1)}}
<li><strong class="chat-result-warning">{{alias}} tombe au sol. Pour se relever et marcher, il doit réussir un test
<li><strong class="chat-result-warning">{{defenderName}} tombe au sol. Pour se relever et marcher, il doit réussir
un test
d'Endurance à chaque tour.
</strong></li>
{{/if}}

View File

@@ -33,6 +33,13 @@
{{#if enableProvidence}}
<li>Un niveau de Providence a été utilisé !</li>
{{/if}}
{{#if hasActions}}
<li data-tooltip="Nombre d'actions restantes, avec MG = Main Gauche">Actions restantes: {{remainingActions}}
(MG:{{remainingActionsMainGauche}})</li>
{{/if}}
{{#if arme}}
{{#if isViser}}
<li>Bonus de visée (+1 niveau)</li>
{{/if}}
@@ -45,6 +52,7 @@
{{#if allongeMalus}}
<li>Malus d'allonge: {{allongeMalus}} niveau</li>
{{/if}}
{{/if}}
<li>Dés: {{diceFormula}} </li>
{{#if isTir}}

View File

@@ -86,6 +86,10 @@
<input type="checkbox" id="roll-charge-a-cheval" {{checked isChargeACheval}} />
</div>
{{/if}}
<div class="flexrow">
<span class="roll-dialog-label">Main gauche ?</span>
<input type="checkbox" id="roll-main-gauche" {{checked isMainGauche}} />
</div>
<div class="flexrow">
<span class="roll-dialog-label">Attaque ciblée (-1 Niveau): </span>
<select class="" type="text" id="roll-attaque-ciblee" value="{{attaqueCiblee}}" data-dtype="String">
@@ -96,6 +100,13 @@
{{/select}}
</select>
</div>
{{else}}
<div class="flexrow">
<span class="roll-dialog-label">Difficulté : </span>
<select class="" type="text" id="roll-difficulty" value="{{difficulty}}" data-dtype="String">
{{selectOptions config.difficulte selected=difficulty valueAttr="key" labelAttr="label"}}
</select>
</div>
{{/if}}
</div>

View File

@@ -0,0 +1,26 @@
<h3 class="welcome-message-h3">Bonjour à tous !</h3>
<div class="message-chat-center">
Open Sesame Game a mis en place 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é à Te Deum ! <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-te-deum.aides.JournalEntry.uNwJgi4kXBCiZmAH]{Aide pour
Te Deum}<br />
ainsi que sur le Discord de Foundry FR :
<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>