3 Commits

Author SHA1 Message Date
uberwald e270d5704b Corrections sur traits et fiches perso/creature
Release Creation / build (release) Successful in 8m45s
2026-06-26 17:05:12 +02:00
uberwald 5eeffd5e24 Correction sur talent et monnaies
Release Creation / build (release) Successful in 9m16s
2026-06-23 21:19:43 +02:00
uberwald dd0276e7e1 Amelioration des talents et quelques corrections 2026-06-23 17:40:57 +02:00
112 changed files with 1303 additions and 434 deletions
+62
View File
@@ -0,0 +1,62 @@
# AGENTS.md — Session Memory
## Dernière session (2026-06-26)
### Changements effectués
1. **Post-item template redesign**`templates/post-item.hbs` type-specific sections (arme, protection, competence, rune, don, pacte, tendance, talent, runeeffect, profil, ressource, bonusmalus, prix, description). 5 helpers in `utility.js`: `localizeItemType`, `localizeTypeArme`, `localizeTalentType`, `localizeUtilisation`, `localizeRuneMode`.
2. **Fix 3 templates cassés**`traitdemoniaque`, `capaciteautomata`, `pouvoirselementaire`: syntaxe `{{ >` (espace) → `{{>`.
3. **Nouveau type Faiblesse Démoniaque** — model, sheet, template, system.json, lang, registrations. Réutilise structure traitdemoniaque.
4. **4 types items ajoutés aux fiches acteur/créature** — traitdemoniaque, faiblessedemoniaque, pouvoirselementaire, capaciteautomata. Méthode `getItemsByType(type)` ajoutée.
5. **Onglet Sorcellerie simplifié** — 3 sections supprimées (Créatures invoquées, Démons liés, Enchantements/Automata). Remplacé par éditeur + liste drag-drop Créatures invoquées.
6. **Drag-drop créatures restauré**`_onDropActor`, `_getLinkedActors`, `#onRemoveLinkedActor`, `#onOpenInvocationActor`, `_onRender` pour gestionnaire clic. CSS `.invocation-actor-list`, `.invocation-dropzone`.
7. **Fix Don sheet**`sacrifice` passé de `StringField` à `HTMLField`, `enrichedSacrifice` dans `_prepareContext`, `formInput` avec `toggled=true` dans template. Ajouté `sacrifice` à `htmlFields` dans system.json.
8. **Fix editor-notes-gm.hbs**`data.isGM``isGM`, `data.biodata.gmnotes``system.biodata.gmnotes`, `{{editor}}``formInput`. `enrichedGmnotes` ajouté à base-actor-sheet `_prepareContext`. Inclus dans biodata tab des deux fiches (partial `{{> ...editor-notes-gm.hbs}}`).
9. **Talent utilisé** — toggle + icône + CSS dans fiches personnage et créature.
10. **Monnaie renommée** — PA→SA, SC→PB.
11. **Profil sheet** — formInput toggled=true label=false pour HTMLField editors, CSS gold titres.
### Règles clés
- AppV2: préférer `formInput` à `{{editor}}`. Les deux ont besoin de `editable`/`owner` dans le contexte.
- `formInput toggled=true` = ProseMirror avec toggle vue/édition. `label=false` évite label dupliqué.
- `CONFIG.Item.dataModels` requis pour types customs. Sans ça, `document.system` est undefined → crash `system.schema.fields`.
- `{{ >` (espace entre {{ et >) = parse error Handlebars. Toujours `{{> partial}}` sans espace.
- `or` helper nesting limité; multi-condition `or` fonctionne avec nesting soigneux.
### Fichiers pertinents
| Fichier | Rôle |
|---------|------|
| `templates/post-item.hbs` | Template post-to-chat par type |
| `modules/mournblade-cyd2-utility.js` | Helpers Handlebars + preload |
| `modules/models/faiblessedemoniaque.mjs` | Data model faiblesse |
| `modules/applications/sheets/mournblade-cyd2-faiblessedemoniaque-sheet.mjs` | Sheet faiblesse |
| `templates/item-faiblessedemoniaque-sheet.hbs` | Template faiblesse |
| `modules/mournblade-cyd2-actor.js` | `getItemsByType`, `getFaiblessesDemoniaques` |
| `modules/applications/sheets/mournblade-cyd2-personnage-sheet.mjs` | Sorcellerie drop + invocation list |
| `templates/actor-sheet.hbs` | Sorcellerie tab, biodata GM notes |
| `templates/creature-sheet.hbs` | Biodata GM notes |
| `templates/editor-notes-gm.hbs` | Notes MJ partial (fixé + inclus) |
| `modules/models/don.mjs` | sacrifice en HTMLField |
| `templates/item-don-sheet.hbs` | formInput pour sacrifice |
| `modules/applications/sheets/mournblade-cyd2-don-sheet.mjs` | enrichedSacrifice |
| `modules/applications/sheets/base-actor-sheet.mjs` | enrichedGmnotes, _onDropActor (vide) |
| `less/simple-converted.less` | Post-item CSS, invocation CSS |
| `less/actor-styles.less` | Talent used toggle |
| `less/item-styles.less` | Titres gold, formInput styling |
| `system.json` | htmlFields don.sacrifice, faiblessedemoniaque type |
### Build / test
- `gulp build` compile LESS
- `node test-templates.js` vérifie templates, partials, lang, API dépréciée
+4 -6
View File
@@ -23,23 +23,21 @@
"traitespece": "Trait d'Espèce",
"traitdemoniaque": "Trait Démoniaque",
"pouvoirselementaire": "Pouvoir Élémentaire",
"capaciteautomata": "Capacité d'Automata"
"capaciteautomata": "Capacité d'Automata",
"faiblessedemoniaque": "Faiblesse Démoniaque"
}
},
"SORCELLERIE": {
"tab": "Sorcellerie",
"runes": "Runes",
"creaturesinvoquees": "Créatures invoquées",
"demonslies": "Démons liés",
"enchantements": "Enchantements / Automata",
"invocationsencours": "Invocations en cours",
"coutPouvoirInvocations": "Coût en Pouvoir des invocations"
},
"SHEETS": {
"Item": {
"traitdemoniaque": "Trait Démoniaque",
"pouvoirselementaire": "Pouvoir Élémentaire",
"capaciteautomata": "Capacité d'Automata"
"capaciteautomata": "Capacité d'Automata",
"faiblessedemoniaque": "Faiblesse Démoniaque"
}
},
"MOURNBLADE": {
+50 -2
View File
@@ -1316,6 +1316,56 @@
}
}
}
// ── Talent Used Toggle ──────────────────────────────────────────
.talent-used-toggle {
flex: 0 0 auto;
display: inline-flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
cursor: pointer;
border-radius: 3px;
transition: all 0.15s;
text-decoration: none;
margin-right: 0.25rem;
i {
font-size: 0.95rem;
color: #8a7a5a;
}
&:hover {
background: rgba(139, 69, 19, 0.2);
transform: scale(1.1);
i {
color: #2a1a0a;
}
}
&.used i {
color: #4a7c59;
}
&.used:hover i {
color: #2d5a3a;
}
}
// Talent row in used state — dimmed appearance
.item-list li.item.talent-used {
opacity: 0.6;
.item-name-img {
filter: grayscale(60%);
}
.talent-used-toggle.used i {
color: #6aaa7a;
}
}
}
/* ==================== Creature Sheet Specific Styles ==================== */
@@ -1429,8 +1479,6 @@
}
}
}
// GM Tools section - labels plus larges
.gm-tools-section {
.grid {
+27
View File
@@ -312,4 +312,31 @@
border-radius: 3px;
flex: 1;
}
/* Section title headings inside sheet-box (Profil, etc.) */
.tab .sheet-box h3,
.tab .sheet-box .items-title-text {
font-family: "CentaurMT", "Palatino Linotype", serif;
font-size: 0.85rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
color: #f0dfc0 !important;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.9);
margin: 0.25rem 0;
padding: 0.2rem 0;
}
/* Suppress formInput label when heading already provides it */
.tab .sheet-box .form-group > label {
display: none;
}
/* ProseMirror editor in sheet-box — ensure readable background */
.tab .sheet-box .editor {
min-height: 4rem;
background: rgba(255, 250, 240, 0.9);
border: 1px solid rgba(139, 69, 19, 0.35);
border-radius: 3px;
}
}
+140
View File
@@ -2531,6 +2531,121 @@
color: #5a2d00;
}
}
.post-item-price {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
padding: 5px 10px;
background: rgba(139, 69, 19, 0.06);
border-bottom: 1px solid rgba(139, 69, 19, 0.3);
font-size: 0.85rem;
.post-price-label {
font-weight: bold;
color: #5a2d00;
font-size: 0.75rem;
text-transform: uppercase;
margin-right: 2px;
}
.post-price {
background: rgba(255, 255, 255, 0.7);
border: 1px solid rgba(139, 69, 19, 0.3);
border-radius: 3px;
padding: 1px 6px;
color: #2a1400;
&.post-price-rarete {
background: rgba(255, 215, 0, 0.15);
border-color: rgba(255, 215, 0, 0.4);
color: #8b6914;
}
}
}
.post-stat-bool {
background: rgba(76, 175, 80, 0.12) !important;
border-color: rgba(76, 175, 80, 0.4) !important;
.stat-value {
color: #2e7d32;
}
}
.post-stat-used {
background: rgba(198, 40, 40, 0.12) !important;
border-color: rgba(198, 40, 40, 0.4) !important;
.stat-value {
color: #c62828;
}
}
.post-item-predilections {
padding: 6px 10px;
background: rgba(255, 255, 255, 0.5);
border-bottom: 1px solid rgba(139, 69, 19, 0.3);
h4 {
margin: 0 0 4px 0;
color: #5a2d00;
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.5px;
}
ul {
margin: 0;
padding: 0;
list-style: none;
li {
padding: 2px 0;
font-size: 0.85rem;
color: #2a1400;
border-bottom: 1px solid rgba(139, 69, 19, 0.1);
&:last-child { border-bottom: none; }
}
}
.pred-name {
color: #2a1400;
font-weight: bold;
}
.pred-desc {
color: #5a2d00;
}
.pred-badge {
display: inline-block;
font-size: 0.7rem;
padding: 0 4px;
border-radius: 2px;
margin-left: 3px;
}
.pred-maitrise {
color: #1565c0;
background: rgba(21, 101, 192, 0.1);
border: 1px solid rgba(21, 101, 192, 0.3);
}
.pred-acquise {
color: #2e7d32;
background: rgba(46, 125, 50, 0.1);
border: 1px solid rgba(46, 125, 50, 0.3);
}
.pred-used {
color: #c62828;
background: rgba(198, 40, 40, 0.1);
border: 1px solid rgba(198, 40, 40, 0.3);
}
}
}
@@ -2664,6 +2779,31 @@
}
}
.invocation-actor-list {
margin: 4px 10px;
border: 1px solid rgba(139, 69, 19, 0.3);
border-radius: 4px;
overflow: hidden;
.invocation-actor-row {
padding: 3px 6px;
border-bottom: 1px solid rgba(139, 69, 19, 0.1);
&:last-child { border-bottom: none; }
img { width: 28px; height: 28px; }
}
}
.invocation-dropzone {
padding: 4px 10px 6px;
text-align: center;
font-size: 0.8rem;
color: #8b6914;
border-top: 1px dashed rgba(139, 69, 19, 0.3);
margin: 0 10px;
}
@keyframes pulse {
0%, 100% {
transform: scale(1);
+1
View File
@@ -26,3 +26,4 @@ export { default as MournbladeCYD2TraitEspeceSheet } from './mournblade-cyd2-tra
export { default as MournbladeCYD2TraitDemoniaqueSheet } from './mournblade-cyd2-traitdemoniaque-sheet.mjs';
export { default as MournbladeCYD2PouvoirElementaireSheet } from './mournblade-cyd2-pouvoirselementaire-sheet.mjs';
export { default as MournbladeCYD2CapaciteAutomataSheet } from './mournblade-cyd2-capaciteautomata-sheet.mjs';
export { default as MournbladeCYD2FaiblesseDemoniaqueSheet } from './mournblade-cyd2-faiblessedemoniaque-sheet.mjs';
@@ -66,6 +66,7 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
deleteEffect: MournbladeCYD2ActorSheetV2.#onDeleteEffect,
toggleEffect: MournbladeCYD2ActorSheetV2.#onToggleEffect,
applyEffect: MournbladeCYD2ActorSheetV2.#onApplyEffect,
toggleTalentUsed: MournbladeCYD2ActorSheetV2.#onToggleTalentUsed,
},
};
@@ -142,6 +143,9 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
enrichedHabitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(
actor.system.biodata?.habitat || "", { async: true }
),
enrichedGmnotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(
actor.system.biodata?.gmnotes || "", { async: true }
),
};
}
@@ -502,4 +506,20 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
}
// #endregion
// #region Talent Management
/**
* Toggle the used state of a talent item
* @param {Event} event - The click event
* @param {HTMLElement} target - The clicked element
*/
static async #onToggleTalentUsed(event, target) {
event.preventDefault();
const li = target.closest('[data-item-id]');
const item = this.document.items.get(li?.dataset.itemId);
if (item) await item.update({ "system.used": !item.system.used });
}
// #endregion
}
@@ -64,6 +64,8 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
),
isEditMode: this.isEditMode,
isEditable: this.isEditable,
editable: this.isEditable,
owner: this.document.isOwner,
isGM: game.user.isGM,
};
}
@@ -41,6 +41,10 @@ export default class MournbladeCYD2CreatureSheet extends MournbladeCYD2ActorShee
context.talents = foundry.utils.duplicate(actor.getTalents?.() ?? []);
context.traitsChaotiques = foundry.utils.duplicate(actor.getTraitsChaotiques?.() ?? []);
context.traitsEspeces = foundry.utils.duplicate(actor.getTraitsEspeces?.() ?? []);
context.traitsDemoniaques = foundry.utils.duplicate(actor.getItemsByType?.("traitdemoniaque") ?? []);
context.faiblessesDemoniaques = foundry.utils.duplicate(actor.getFaiblessesDemoniaques?.() ?? []);
context.pouvoirsElementaires = foundry.utils.duplicate(actor.getItemsByType?.("pouvoirselementaire") ?? []);
context.capacitesAutomata = foundry.utils.duplicate(actor.getItemsByType?.("capaciteautomata") ?? []);
context.protectionTotal = actor.getProtectionTotal?.() ?? 0;
context.adversiteTotal = (actor.system.adversite?.bleue || 0) + (actor.system.adversite?.rouge || 0) + (actor.system.adversite?.noire || 0);
@@ -24,6 +24,9 @@ export default class MournbladeCYD2DonSheet extends MournbladeCYD2ItemSheetV2 {
const context = await super._prepareContext();
context.owner = this.document.isOwner;
context.editable = this.isEditable;
context.enrichedSacrifice = await foundry.applications.ux.TextEditor.implementation.enrichHTML(
this.document.system.sacrifice || "", { async: true }
);
return context;
}
}
@@ -0,0 +1,27 @@
import MournbladeCYD2ItemSheetV2 from "./base-item-sheet.mjs";
export default class MournbladeCYD2FaiblesseDemoniaqueSheet extends MournbladeCYD2ItemSheetV2 {
/** @override */
static DEFAULT_OPTIONS = {
...super.DEFAULT_OPTIONS,
classes: [...super.DEFAULT_OPTIONS.classes, "faiblessedemoniaque"],
window: {
...super.DEFAULT_OPTIONS.window,
title: "SHEETS.Item.faiblessedemoniaque",
},
};
/** @override */
static PARTS = {
main: {
template: "systems/fvtt-mournblade-cyd-2-0/templates/item-faiblessedemoniaque-sheet.hbs",
},
};
/** @override */
async _prepareContext() {
const context = await super._prepareContext();
return context;
}
}
@@ -45,6 +45,10 @@ export default class MournbladeCYD2PersonnageSheet extends MournbladeCYD2ActorSh
context.runes = foundry.utils.duplicate(actor.getRunes?.() ?? []);
context.traitsChaotiques = foundry.utils.duplicate(actor.getTraitsChaotiques?.() ?? []);
context.traitsEspeces = foundry.utils.duplicate(actor.getTraitsEspeces?.() ?? []);
context.traitsDemoniaques = foundry.utils.duplicate(actor.getItemsByType?.("traitdemoniaque") ?? []);
context.faiblessesDemoniaques = foundry.utils.duplicate(actor.getFaiblessesDemoniaques?.() ?? []);
context.pouvoirsElementaires = foundry.utils.duplicate(actor.getItemsByType?.("pouvoirselementaire") ?? []);
context.capacitesAutomata = foundry.utils.duplicate(actor.getItemsByType?.("capaciteautomata") ?? []);
context.profil = actor.getProfil?.() ?? null;
context.historiques = foundry.utils.duplicate(actor.getHistoriques?.() ?? []);
context.combat = actor.getCombatValues?.() ?? {};
@@ -58,27 +62,19 @@ export default class MournbladeCYD2PersonnageSheet extends MournbladeCYD2ActorSh
context.richesse = actor.computeRichesse?.() ?? { po: 0, pa: 0, sc: 0, valueSC: 0 };
context.valeurEquipement = actor.computeValeurEquipement?.() ?? { po: 0, pa: 0, sc: 0, valueSC: 0 };
// Prepare sorcellerie linked actors for display
context.creaturesInvoqueesActors = await this._getLinkedActors(actor.system.sorcellerie.creaturesinvoquees);
context.demonsLiesActors = await this._getLinkedActors(actor.system.sorcellerie.demonslies);
context.enchantementsActors = await this._getLinkedActors(actor.system.sorcellerie.enchantements);
// Prepare enriched HTML for sorcellerie fields
context.enrichedInvocationsEnCours = await foundry.applications.ux.TextEditor.implementation.enrichHTML(
actor.system.sorcellerie?.invocationsencours || "", { async: true }
);
// Linked creatures for invocation section
context.creaturesInvoqueesActors = await this._getLinkedActors(actor.system.sorcellerie.creaturesinvoquees);
return context;
}
/**
* Get actor objects from UUID references
* @param {string[]} uuids - Array of actor UUIDs
* @returns {Promise<Actor[]>} Array of actor documents
*/
async _getLinkedActors(uuids) {
if (!uuids || !Array.isArray(uuids) || uuids.length === 0) return [];
const actors = [];
for (const uuid of uuids) {
const actor = await fromUuid(uuid);
@@ -89,98 +85,45 @@ export default class MournbladeCYD2PersonnageSheet extends MournbladeCYD2ActorSh
return actors;
}
/**
* Handle actor drop on the sheet
* @override
*/
async _onDropActor(event, data) {
if (!this.document.isOwner) return;
const droppedActor = await Actor.fromDropData(data);
if (!droppedActor) return;
// Only allow dropping Creature type actors
if (droppedActor.type !== 'creature') return;
// Determine which list to add to based on creature subtype
let fieldPath = '';
const subType = droppedActor.system.soustype || 'creature';
switch (subType) {
case 'demon':
fieldPath = 'system.sorcellerie.demonslies';
break;
case 'automata':
fieldPath = 'system.sorcellerie.enchantements';
break;
case 'creature':
default:
fieldPath = 'system.sorcellerie.creaturesinvoquees';
break;
const uuids = this.document.system.sorcellerie.creaturesinvoquees || [];
if (!uuids.includes(droppedActor.uuid)) {
uuids.push(droppedActor.uuid);
await this.document.update({ "system.sorcellerie.creaturesinvoquees": uuids });
}
// Add the actor UUID to the appropriate array
const currentValue = foundry.utils.getProperty(this.document.system, fieldPath) || [];
// Avoid duplicates
if (!currentValue.includes(droppedActor.uuid)) {
currentValue.push(droppedActor.uuid);
await this.document.update({ [fieldPath]: currentValue });
}
this.render();
}
/**
* Handle removal of a linked actor from sorcellerie sections
* @param {Event} event - The click event
* @param {HTMLElement} target - The clicked element
*/
static async #onRemoveLinkedActor(event, target) {
const li = target.closest(".item");
if (!li) return;
const field = target.dataset.field;
const uuid = target.dataset.uuid;
if (!field || !uuid) return;
const fieldPath = `system.sorcellerie.${field}`;
const currentValue = foundry.utils.getProperty(this.document.system, fieldPath) || [];
// Remove the UUID from the array
const newValue = currentValue.filter(u => u !== uuid);
await this.document.update({ [fieldPath]: newValue });
if (!uuid) return;
const currentValue = this.document.system.sorcellerie.creaturesinvoquees || [];
await this.document.update({
"system.sorcellerie.creaturesinvoquees": currentValue.filter(u => u !== uuid)
});
this.render();
}
/**
* Handle click on linked actor name to open its sheet
* @param {Event} event - The click event
*/
static async #onOpenLinkedActor(event) {
const target = event.target.closest(".linked-actor-name");
static async #onOpenInvocationActor(event) {
const target = event.target.closest(".invocation-actor-link");
if (!target) return;
const uuid = target.dataset.actorUuid;
if (!uuid) return;
const actor = await fromUuid(uuid);
if (actor) {
actor.sheet.render(true);
}
if (actor) actor.sheet.render(true);
}
/** @override */
_onRender(context, options) {
super._onRender(context, options);
// Add click handler for linked actor names
this.element.querySelectorAll('.linked-actor-name').forEach(el => {
this.element.querySelectorAll('.invocation-actor-link').forEach(el => {
el.addEventListener('click', (event) => {
event.preventDefault();
this.constructor.#onOpenLinkedActor(event);
this.constructor.#onOpenInvocationActor(event);
});
});
}
@@ -22,6 +22,16 @@ export default class MournbladeCYD2ProfilSheet extends MournbladeCYD2ItemSheetV2
/** @override */
async _prepareContext() {
const context = await super._prepareContext();
const item = this.document;
// Enrich each HTMLField for ProseMirror display
for (const field of ["competences", "talentsinitie", "prerequisaguerri", "talentsaguerri", "prerequismaitre", "talentsmaitre"]) {
const enrichedKey = `enriched${field.charAt(0).toUpperCase() + field.slice(1)}`;
context[enrichedKey] = await foundry.applications.ux.TextEditor.implementation.enrichHTML(
item.system[field] || "", { async: true }
);
}
return context;
}
}
+1 -1
View File
@@ -8,7 +8,7 @@ export default class DonDataModel extends foundry.abstract.TypeDataModel {
description: new fields.HTMLField({ initial: "" }),
allegeance: new fields.StringField({ initial: "" }),
prerequis: new fields.StringField({ initial: "" }),
sacrifice: new fields.StringField({ initial: "" })
sacrifice: new fields.HTMLField({ initial: "" })
};
}
}
+9
View File
@@ -0,0 +1,9 @@
export default class FaiblesseDemoniaqueDataModel extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
description: new fields.HTMLField({ initial: "" }),
bonusmalus: new fields.StringField({ initial: "" })
};
}
}
+1
View File
@@ -23,6 +23,7 @@ export { default as TraitEspeceDataModel } from './traitespece.mjs';
export { default as TraitDemoniaqueDataModel } from './traitdemoniaque.mjs';
export { default as PouvoirElementaireDataModel } from './pouvoirselementaire.mjs';
export { default as CapaciteAutomataDataModel } from './capaciteautomata.mjs';
export { default as FaiblesseDemoniaqueDataModel } from './faiblessedemoniaque.mjs';
// Modèles d'acteurs
export { default as PersonnageDataModel } from './personnage.mjs';
+6
View File
@@ -157,6 +157,12 @@ export class MournbladeCYD2Actor extends Actor {
getTraitsEspeces() {
return this.getItemSorted(["traitespece"])
}
getItemsByType(type) {
return this.getItemSorted([type])
}
getFaiblessesDemoniaques() {
return this.getItemSorted(["faiblessedemoniaque"])
}
/* -------------------------------------------- */
getAspect() {
+3 -1
View File
@@ -73,7 +73,8 @@ Hooks.once("init", async function () {
traitespece: models.TraitEspeceDataModel,
traitdemoniaque: models.TraitDemoniaqueDataModel,
pouvoirselementaire: models.PouvoirElementaireDataModel,
capaciteautomata: models.CapaciteAutomataDataModel
capaciteautomata: models.CapaciteAutomataDataModel,
faiblessedemoniaque: models.FaiblesseDemoniaqueDataModel
}
game.system.mournbladecyd2 = {
MournbladeCYD2Utility,
@@ -107,6 +108,7 @@ Hooks.once("init", async function () {
foundry.documents.collections.Items.registerSheet("fvtt-mournblade-cyd-2-0", sheets.MournbladeCYD2TraitDemoniaqueSheet, { types: ["traitdemoniaque"], makeDefault: true });
foundry.documents.collections.Items.registerSheet("fvtt-mournblade-cyd-2-0", sheets.MournbladeCYD2PouvoirElementaireSheet, { types: ["pouvoirselementaire"], makeDefault: true });
foundry.documents.collections.Items.registerSheet("fvtt-mournblade-cyd-2-0", sheets.MournbladeCYD2CapaciteAutomataSheet, { types: ["capaciteautomata"], makeDefault: true });
foundry.documents.collections.Items.registerSheet("fvtt-mournblade-cyd-2-0", sheets.MournbladeCYD2FaiblesseDemoniaqueSheet, { types: ["faiblessedemoniaque"], makeDefault: true });
MournbladeCYD2Utility.init()
MournbladeCYD2Automation.init()
+71 -4
View File
@@ -13,11 +13,10 @@ export class MournbladeCYD2Utility {
/* -------------------------------------------- */
// Helper pour calculer la valeur totale d'un item en SC (Sous de Cuivre / Pièces de Bronze)
// Helper pour calculer la valeur totale d'un item en PB (Pièces de Bronze)
// Conversion selon le lore Mournblade :
// 1 SA (Sou d'Argent / Pièce d'Argent) = 10 PB (Pièces de Bronze / Sous de Cuivre)
// 1 SA (Sou d'Argent) = 10 PB (Pièces de Bronze)
// 1 PO (Pièce d'Or) = 10 SA = 100 PB
// Donc : 1 PA (Pièce d'Argent) = 10 SC, 1 PO (Pièce d'Or) = 100 SC
static calculateItemValueSC(prixpo, prixca, prixsc) {
const po = parseInt(prixpo) || 0;
const ca = parseInt(prixca) || 0;
@@ -99,6 +98,74 @@ export class MournbladeCYD2Utility {
.join(', ');
});
// Helper pour localiser le type d'item
Handlebars.registerHelper('localizeItemType', function (type) {
const labels = {
arme: "Arme",
protection: "Protection",
competence: "Compétence",
rune: "Rune",
don: "Don",
pacte: "Pacte",
tendance: "Tendance",
talent: "Talent",
equipement: "Équipement",
monnaie: "Monnaie",
profil: "Profil",
historique: "Historique",
ressource: "Ressource",
traitespece: "Trait d'espèce",
traitchaotique: "Trait chaotique",
traitdemoniaque: "Trait démoniaque",
pouvoirselementaire: "Pouvoir élémentaire",
capaciteautomata: "Capacité d'Automata",
faiblessedemoniaque: "Faiblesse Démoniaque",
runeeffect: "Effet de Rune"
};
return labels[type] || type;
});
// Helper pour localiser le type d'arme
Handlebars.registerHelper('localizeTypeArme', function (value) {
const map = {
contact: "Arme de contact",
contactjet: "Contact et Jet",
jet: "Arme de Jet",
tir: "Arme de Tir"
};
return map[value] || value;
});
// Helper pour localiser le type de talent
Handlebars.registerHelper('localizeTalentType', function (value) {
const map = {
personnage: "Personnage",
traitespece: "Trait d'espèce"
};
return map[value] || value;
});
// Helper pour localiser l'utilisation d'un talent
Handlebars.registerHelper('localizeUtilisation', function (value) {
const map = {
permanent: "Permanent",
sceance: "Une fois par séance",
scenario: "Une fois par scénario",
jour: "Une fois par jour",
unique: "Unique"
};
return map[value] || value;
});
// Helper pour localiser le mode d'effet de rune
Handlebars.registerHelper('localizeRuneMode', function (value) {
const map = {
prononcee: "Prononcée",
inscrite: "Inscrite"
};
return map[value] || value;
});
Handlebars.registerHelper('select', function(value, opts) {
const html = opts.fn(this);
const escaped = String(value).replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
@@ -384,7 +451,7 @@ export class MournbladeCYD2Utility {
/* -------------------------------------------- */
static computeMonnaieDetails(valueSC) {
// Conversion selon le lore Mournblade :
// 1 PO = 100 SC, 1 CA (PA) = 10 SC
// 1 PO = 100 PB, 1 SA = 10 PB
let po = Math.floor(valueSC / 100)
let pa = Math.floor((valueSC - (po * 100)) / 10)
let sc = valueSC - (po * 100) - (pa * 10)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000451
MANIFEST-000467
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.605565 7f15ce3fc6c0 Recovering log #449
2026/06/07-23:29:46.614959 7f15ce3fc6c0 Delete type=3 #447
2026/06/07-23:29:46.614979 7f15ce3fc6c0 Delete type=0 #449
2026/06/07-23:51:38.199273 7f15cdbfb6c0 Level-0 table #454: started
2026/06/07-23:51:38.199286 7f15cdbfb6c0 Level-0 table #454: 0 bytes OK
2026/06/07-23:51:38.205066 7f15cdbfb6c0 Delete type=0 #452
2026/06/07-23:51:38.211362 7f15cdbfb6c0 Manual compaction at level-0 from '!journal!gVybbv17TFY8o3Y4' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2026/06/26-16:50:36.451553 7f65c77ef6c0 Recovering log #465
2026/06/26-16:50:36.486921 7f65c77ef6c0 Delete type=3 #463
2026/06/26-16:50:36.486959 7f65c77ef6c0 Delete type=0 #465
2026/06/26-17:04:51.247295 7f65c57eb6c0 Level-0 table #470: started
2026/06/26-17:04:51.247312 7f65c57eb6c0 Level-0 table #470: 0 bytes OK
2026/06/26-17:04:51.253147 7f65c57eb6c0 Delete type=0 #468
2026/06/26-17:04:51.262796 7f65c57eb6c0 Manual compaction at level-0 from '!journal!gVybbv17TFY8o3Y4' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.395630 7f15cfbff6c0 Recovering log #445
2026/06/07-22:26:23.404603 7f15cfbff6c0 Delete type=3 #443
2026/06/07-22:26:23.404618 7f15cfbff6c0 Delete type=0 #445
2026/06/07-23:28:18.037162 7f15cdbfb6c0 Level-0 table #450: started
2026/06/07-23:28:18.037182 7f15cdbfb6c0 Level-0 table #450: 0 bytes OK
2026/06/07-23:28:18.043745 7f15cdbfb6c0 Delete type=0 #448
2026/06/07-23:28:18.050582 7f15cdbfb6c0 Manual compaction at level-0 from '!journal!gVybbv17TFY8o3Y4' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.392559 7f65c67ed6c0 Recovering log #461
2026/06/26-16:44:09.402980 7f65c67ed6c0 Delete type=3 #459
2026/06/26-16:44:09.403009 7f65c67ed6c0 Delete type=0 #461
2026/06/26-16:50:27.994459 7f65c57eb6c0 Level-0 table #466: started
2026/06/26-16:50:27.994505 7f65c57eb6c0 Level-0 table #466: 0 bytes OK
2026/06/26-16:50:28.050909 7f65c57eb6c0 Delete type=0 #464
2026/06/26-16:50:28.189532 7f65c57eb6c0 Manual compaction at level-0 from '!journal!gVybbv17TFY8o3Y4' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000446
MANIFEST-000462
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.486418 7f15ce3fc6c0 Recovering log #444
2026/06/07-23:29:46.496573 7f15ce3fc6c0 Delete type=3 #442
2026/06/07-23:29:46.496587 7f15ce3fc6c0 Delete type=0 #444
2026/06/07-23:51:38.132071 7f15cdbfb6c0 Level-0 table #449: started
2026/06/07-23:51:38.132089 7f15cdbfb6c0 Level-0 table #449: 0 bytes OK
2026/06/07-23:51:38.138027 7f15cdbfb6c0 Delete type=0 #447
2026/06/07-23:51:38.149430 7f15cdbfb6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2026/06/26-16:50:35.916508 7f65c77ef6c0 Recovering log #460
2026/06/26-16:50:35.964756 7f65c77ef6c0 Delete type=3 #458
2026/06/26-16:50:35.964784 7f65c77ef6c0 Delete type=0 #460
2026/06/26-17:04:51.185403 7f65c57eb6c0 Level-0 table #465: started
2026/06/26-17:04:51.185425 7f65c57eb6c0 Level-0 table #465: 0 bytes OK
2026/06/26-17:04:51.191543 7f65c57eb6c0 Delete type=0 #463
2026/06/26-17:04:51.203372 7f65c57eb6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.277424 7f15cf3fe6c0 Recovering log #440
2026/06/07-22:26:23.287266 7f15cf3fe6c0 Delete type=3 #438
2026/06/07-22:26:23.287281 7f15cf3fe6c0 Delete type=0 #440
2026/06/07-23:28:17.956926 7f15cdbfb6c0 Level-0 table #445: started
2026/06/07-23:28:17.956939 7f15cdbfb6c0 Level-0 table #445: 0 bytes OK
2026/06/07-23:28:17.962818 7f15cdbfb6c0 Delete type=0 #443
2026/06/07-23:28:17.968789 7f15cdbfb6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.236971 7f65c5fec6c0 Recovering log #456
2026/06/26-16:44:09.246951 7f65c5fec6c0 Delete type=3 #454
2026/06/26-16:44:09.247005 7f65c5fec6c0 Delete type=0 #456
2026/06/26-16:50:27.332281 7f65c57eb6c0 Level-0 table #461: started
2026/06/26-16:50:27.332309 7f65c57eb6c0 Level-0 table #461: 0 bytes OK
2026/06/26-16:50:27.355690 7f65c57eb6c0 Delete type=0 #459
2026/06/26-16:50:27.356661 7f65c57eb6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000345
MANIFEST-000361
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.519301 7f15cebfd6c0 Recovering log #343
2026/06/07-23:29:46.528855 7f15cebfd6c0 Delete type=3 #341
2026/06/07-23:29:46.528876 7f15cebfd6c0 Delete type=0 #343
2026/06/07-23:51:38.149435 7f15cdbfb6c0 Level-0 table #348: started
2026/06/07-23:51:38.149444 7f15cdbfb6c0 Level-0 table #348: 0 bytes OK
2026/06/07-23:51:38.155961 7f15cdbfb6c0 Delete type=0 #346
2026/06/07-23:51:38.162070 7f15cdbfb6c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
2026/06/26-16:50:36.072363 7f65c5fec6c0 Recovering log #359
2026/06/26-16:50:36.112791 7f65c5fec6c0 Delete type=3 #357
2026/06/26-16:50:36.112853 7f65c5fec6c0 Delete type=0 #359
2026/06/26-17:04:51.191584 7f65c57eb6c0 Level-0 table #364: started
2026/06/26-17:04:51.191597 7f65c57eb6c0 Level-0 table #364: 0 bytes OK
2026/06/26-17:04:51.197503 7f65c57eb6c0 Delete type=0 #362
2026/06/26-17:04:51.203383 7f65c57eb6c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.309282 7f15cfbff6c0 Recovering log #339
2026/06/07-22:26:23.319052 7f15cfbff6c0 Delete type=3 #337
2026/06/07-22:26:23.319068 7f15cfbff6c0 Delete type=0 #339
2026/06/07-23:28:17.984230 7f15cdbfb6c0 Level-0 table #344: started
2026/06/07-23:28:17.984244 7f15cdbfb6c0 Level-0 table #344: 0 bytes OK
2026/06/07-23:28:17.993689 7f15cdbfb6c0 Delete type=0 #342
2026/06/07-23:28:17.999974 7f15cdbfb6c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.274842 7f65c67ed6c0 Recovering log #355
2026/06/26-16:44:09.284724 7f65c67ed6c0 Delete type=3 #353
2026/06/26-16:44:09.284787 7f65c67ed6c0 Delete type=0 #355
2026/06/26-16:50:27.739190 7f65c57eb6c0 Level-0 table #360: started
2026/06/26-16:50:27.739221 7f65c57eb6c0 Level-0 table #360: 0 bytes OK
2026/06/26-16:50:27.774973 7f65c57eb6c0 Delete type=0 #358
2026/06/26-16:50:27.775147 7f65c57eb6c0 Manual compaction at level-0 from '!items!5dGXNiL3WN4cAk7X' @ 72057594037927935 : 1 .. '!items!zzz9JrtWjELdoAfK' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000345
MANIFEST-000361
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.508106 7f15ce3fc6c0 Recovering log #343
2026/06/07-23:29:46.517793 7f15ce3fc6c0 Delete type=3 #341
2026/06/07-23:29:46.517822 7f15ce3fc6c0 Delete type=0 #343
2026/06/07-23:51:38.138162 7f15cdbfb6c0 Level-0 table #348: started
2026/06/07-23:51:38.138174 7f15cdbfb6c0 Level-0 table #348: 0 bytes OK
2026/06/07-23:51:38.143807 7f15cdbfb6c0 Delete type=0 #346
2026/06/07-23:51:38.156002 7f15cdbfb6c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
2026/06/26-16:50:36.029194 7f65c77ef6c0 Recovering log #359
2026/06/26-16:50:36.069865 7f65c77ef6c0 Delete type=3 #357
2026/06/26-16:50:36.069914 7f65c77ef6c0 Delete type=0 #359
2026/06/26-17:04:51.179133 7f65c57eb6c0 Level-0 table #364: started
2026/06/26-17:04:51.179173 7f65c57eb6c0 Level-0 table #364: 0 bytes OK
2026/06/26-17:04:51.185310 7f65c57eb6c0 Delete type=0 #362
2026/06/26-17:04:51.203363 7f65c57eb6c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.298745 7f15cf3fe6c0 Recovering log #339
2026/06/07-22:26:23.307825 7f15cf3fe6c0 Delete type=3 #337
2026/06/07-22:26:23.307846 7f15cf3fe6c0 Delete type=0 #339
2026/06/07-23:28:17.978225 7f15cdbfb6c0 Level-0 table #344: started
2026/06/07-23:28:17.978242 7f15cdbfb6c0 Level-0 table #344: 0 bytes OK
2026/06/07-23:28:17.984167 7f15cdbfb6c0 Delete type=0 #342
2026/06/07-23:28:17.999966 7f15cdbfb6c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.261383 7f65c77ef6c0 Recovering log #355
2026/06/26-16:44:09.271306 7f65c77ef6c0 Delete type=3 #353
2026/06/26-16:44:09.271344 7f65c77ef6c0 Delete type=0 #355
2026/06/26-16:50:27.674012 7f65c57eb6c0 Level-0 table #360: started
2026/06/26-16:50:27.674033 7f65c57eb6c0 Level-0 table #360: 0 bytes OK
2026/06/26-16:50:27.717676 7f65c57eb6c0 Delete type=0 #358
2026/06/26-16:50:27.775124 7f65c57eb6c0 Manual compaction at level-0 from '!items!1cZd2hlTV9tykDED' @ 72057594037927935 : 1 .. '!items!y47dBO3Mf5Pn7tOd' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000462
MANIFEST-000478
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.475874 7f15cebfd6c0 Recovering log #460
2026/06/07-23:29:46.484893 7f15cebfd6c0 Delete type=3 #458
2026/06/07-23:29:46.484912 7f15cebfd6c0 Delete type=0 #460
2026/06/07-23:51:38.118698 7f15cdbfb6c0 Level-0 table #465: started
2026/06/07-23:51:38.118712 7f15cdbfb6c0 Level-0 table #465: 0 bytes OK
2026/06/07-23:51:38.125251 7f15cdbfb6c0 Delete type=0 #463
2026/06/07-23:51:38.138081 7f15cdbfb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2026/06/26-16:50:35.877040 7f65c5fec6c0 Recovering log #476
2026/06/26-16:50:35.913887 7f65c5fec6c0 Delete type=3 #474
2026/06/26-16:50:35.913938 7f65c5fec6c0 Delete type=0 #476
2026/06/26-17:04:51.160172 7f65c57eb6c0 Level-0 table #481: started
2026/06/26-17:04:51.160204 7f65c57eb6c0 Level-0 table #481: 0 bytes OK
2026/06/26-17:04:51.167067 7f65c57eb6c0 Delete type=0 #479
2026/06/26-17:04:51.178996 7f65c57eb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.266894 7f15ce3fc6c0 Recovering log #456
2026/06/07-22:26:23.275979 7f15ce3fc6c0 Delete type=3 #454
2026/06/07-22:26:23.275997 7f15ce3fc6c0 Delete type=0 #456
2026/06/07-23:28:17.941519 7f15cdbfb6c0 Level-0 table #461: started
2026/06/07-23:28:17.941549 7f15cdbfb6c0 Level-0 table #461: 0 bytes OK
2026/06/07-23:28:17.949985 7f15cdbfb6c0 Delete type=0 #459
2026/06/07-23:28:17.968775 7f15cdbfb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.225400 7f65c67ed6c0 Recovering log #472
2026/06/26-16:44:09.234780 7f65c67ed6c0 Delete type=3 #470
2026/06/26-16:44:09.234844 7f65c67ed6c0 Delete type=0 #472
2026/06/26-16:50:27.312567 7f65c57eb6c0 Level-0 table #477: started
2026/06/26-16:50:27.312595 7f65c57eb6c0 Level-0 table #477: 0 bytes OK
2026/06/26-16:50:27.332162 7f65c57eb6c0 Delete type=0 #475
2026/06/26-16:50:27.356584 7f65c57eb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000462
MANIFEST-000478
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.563294 7f15cfbff6c0 Recovering log #460
2026/06/07-23:29:46.572186 7f15cfbff6c0 Delete type=3 #458
2026/06/07-23:29:46.572202 7f15cfbff6c0 Delete type=0 #460
2026/06/07-23:51:38.173581 7f15cdbfb6c0 Level-0 table #465: started
2026/06/07-23:51:38.173595 7f15cdbfb6c0 Level-0 table #465: 0 bytes OK
2026/06/07-23:51:38.180217 7f15cdbfb6c0 Delete type=0 #463
2026/06/07-23:51:38.186311 7f15cdbfb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2026/06/26-16:50:36.268072 7f65c77ef6c0 Recovering log #476
2026/06/26-16:50:36.306497 7f65c77ef6c0 Delete type=3 #474
2026/06/26-16:50:36.306562 7f65c77ef6c0 Delete type=0 #476
2026/06/26-17:04:51.216386 7f65c57eb6c0 Level-0 table #481: started
2026/06/26-17:04:51.216402 7f65c57eb6c0 Level-0 table #481: 0 bytes OK
2026/06/26-17:04:51.222365 7f65c57eb6c0 Delete type=0 #479
2026/06/26-17:04:51.228941 7f65c57eb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.352823 7f15cfbff6c0 Recovering log #456
2026/06/07-22:26:23.361852 7f15cfbff6c0 Delete type=3 #454
2026/06/07-22:26:23.361868 7f15cfbff6c0 Delete type=0 #456
2026/06/07-23:28:18.012534 7f15cdbfb6c0 Level-0 table #461: started
2026/06/07-23:28:18.012548 7f15cdbfb6c0 Level-0 table #461: 0 bytes OK
2026/06/07-23:28:18.018384 7f15cdbfb6c0 Delete type=0 #459
2026/06/07-23:28:18.025111 7f15cdbfb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.339296 7f65c6fee6c0 Recovering log #472
2026/06/26-16:44:09.348758 7f65c6fee6c0 Delete type=3 #470
2026/06/26-16:44:09.348823 7f65c6fee6c0 Delete type=0 #472
2026/06/26-16:50:27.840976 7f65c57eb6c0 Level-0 table #477: started
2026/06/26-16:50:27.841010 7f65c57eb6c0 Level-0 table #477: 0 bytes OK
2026/06/26-16:50:27.876252 7f65c57eb6c0 Delete type=0 #475
2026/06/26-16:50:27.904913 7f65c57eb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000345
MANIFEST-000361
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.497786 7f15cebfd6c0 Recovering log #343
2026/06/07-23:29:46.506890 7f15cebfd6c0 Delete type=3 #341
2026/06/07-23:29:46.506907 7f15cebfd6c0 Delete type=0 #343
2026/06/07-23:51:38.143833 7f15cdbfb6c0 Level-0 table #348: started
2026/06/07-23:51:38.143844 7f15cdbfb6c0 Level-0 table #348: 0 bytes OK
2026/06/07-23:51:38.149406 7f15cdbfb6c0 Delete type=0 #346
2026/06/07-23:51:38.156008 7f15cdbfb6c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
2026/06/26-16:50:35.968889 7f65c6fee6c0 Recovering log #359
2026/06/26-16:50:36.026849 7f65c6fee6c0 Delete type=3 #357
2026/06/26-16:50:36.026910 7f65c6fee6c0 Delete type=0 #359
2026/06/26-17:04:51.173152 7f65c57eb6c0 Level-0 table #364: started
2026/06/26-17:04:51.173175 7f65c57eb6c0 Level-0 table #364: 0 bytes OK
2026/06/26-17:04:51.178902 7f65c57eb6c0 Delete type=0 #362
2026/06/26-17:04:51.179012 7f65c57eb6c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.288575 7f15cebfd6c0 Recovering log #339
2026/06/07-22:26:23.297862 7f15cebfd6c0 Delete type=3 #337
2026/06/07-22:26:23.297882 7f15cebfd6c0 Delete type=0 #339
2026/06/07-23:28:17.968876 7f15cdbfb6c0 Level-0 table #344: started
2026/06/07-23:28:17.968886 7f15cdbfb6c0 Level-0 table #344: 0 bytes OK
2026/06/07-23:28:17.978161 7f15cdbfb6c0 Delete type=0 #342
2026/06/07-23:28:17.999957 7f15cdbfb6c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.249598 7f65c6fee6c0 Recovering log #355
2026/06/26-16:44:09.258938 7f65c6fee6c0 Delete type=3 #353
2026/06/26-16:44:09.258988 7f65c6fee6c0 Delete type=0 #355
2026/06/26-16:50:27.356685 7f65c57eb6c0 Level-0 table #360: started
2026/06/26-16:50:27.356708 7f65c57eb6c0 Level-0 table #360: 0 bytes OK
2026/06/26-16:50:27.673910 7f65c57eb6c0 Delete type=0 #358
2026/06/26-16:50:27.775105 7f65c57eb6c0 Manual compaction at level-0 from '!items!2hD1DQVeCIQIXFU7' @ 72057594037927935 : 1 .. '!items!veoS6Gtzj6Dq087V' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000345
MANIFEST-000361
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.551905 7f15ce3fc6c0 Recovering log #343
2026/06/07-23:29:46.561422 7f15ce3fc6c0 Delete type=3 #341
2026/06/07-23:29:46.561439 7f15ce3fc6c0 Delete type=0 #343
2026/06/07-23:51:38.162076 7f15cdbfb6c0 Level-0 table #348: started
2026/06/07-23:51:38.162089 7f15cdbfb6c0 Level-0 table #348: 0 bytes OK
2026/06/07-23:51:38.167711 7f15cdbfb6c0 Delete type=0 #346
2026/06/07-23:51:38.180316 7f15cdbfb6c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
2026/06/26-16:50:36.210388 7f65c6fee6c0 Recovering log #359
2026/06/26-16:50:36.265029 7f65c6fee6c0 Delete type=3 #357
2026/06/26-16:50:36.265084 7f65c6fee6c0 Delete type=0 #359
2026/06/26-17:04:51.210224 7f65c57eb6c0 Level-0 table #364: started
2026/06/26-17:04:51.210239 7f65c57eb6c0 Level-0 table #364: 0 bytes OK
2026/06/26-17:04:51.216342 7f65c57eb6c0 Delete type=0 #362
2026/06/26-17:04:51.228933 7f65c57eb6c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.341945 7f15cf3fe6c0 Recovering log #339
2026/06/07-22:26:23.351548 7f15cf3fe6c0 Delete type=3 #337
2026/06/07-22:26:23.351562 7f15cf3fe6c0 Delete type=0 #339
2026/06/07-23:28:18.006777 7f15cdbfb6c0 Level-0 table #344: started
2026/06/07-23:28:18.006789 7f15cdbfb6c0 Level-0 table #344: 0 bytes OK
2026/06/07-23:28:18.012488 7f15cdbfb6c0 Delete type=0 #342
2026/06/07-23:28:18.025106 7f15cdbfb6c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.327011 7f65c77ef6c0 Recovering log #355
2026/06/26-16:44:09.336426 7f65c77ef6c0 Delete type=3 #353
2026/06/26-16:44:09.336453 7f65c77ef6c0 Delete type=0 #355
2026/06/26-16:50:27.775254 7f65c57eb6c0 Level-0 table #360: started
2026/06/26-16:50:27.775279 7f65c57eb6c0 Level-0 table #360: 0 bytes OK
2026/06/26-16:50:27.813769 7f65c57eb6c0 Delete type=0 #358
2026/06/26-16:50:27.904882 7f65c57eb6c0 Manual compaction at level-0 from '!items!1JqWbEkHUoKXbsgn' @ 72057594037927935 : 1 .. '!items!xnCf2xIPzdsUoBTy' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000293
MANIFEST-000310
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.594984 7f15cebfd6c0 Recovering log #291
2026/06/07-23:29:46.603957 7f15cebfd6c0 Delete type=3 #289
2026/06/07-23:29:46.603977 7f15cebfd6c0 Delete type=0 #291
2026/06/07-23:51:38.192811 7f15cdbfb6c0 Level-0 table #296: started
2026/06/07-23:51:38.192828 7f15cdbfb6c0 Level-0 table #296: 0 bytes OK
2026/06/07-23:51:38.199207 7f15cdbfb6c0 Delete type=0 #294
2026/06/07-23:51:38.205129 7f15cdbfb6c0 Manual compaction at level-0 from '!scenes!dYKdGdh2PbtXs32a' @ 72057594037927935 : 1 .. '!scenes.levels!dYKdGdh2PbtXs32a.defaultLevel0000' @ 0 : 0; will stop at (end)
2026/06/26-16:50:36.405368 7f65c5fec6c0 Recovering log #308
2026/06/26-16:50:36.448564 7f65c5fec6c0 Delete type=3 #306
2026/06/26-16:50:36.448592 7f65c5fec6c0 Delete type=0 #308
2026/06/26-17:04:51.234862 7f65c57eb6c0 Level-0 table #313: started
2026/06/26-17:04:51.234876 7f65c57eb6c0 Level-0 table #313: 0 bytes OK
2026/06/26-17:04:51.240676 7f65c57eb6c0 Delete type=0 #311
2026/06/26-17:04:51.253217 7f65c57eb6c0 Manual compaction at level-0 from '!scenes!dYKdGdh2PbtXs32a' @ 72057594037927935 : 1 .. '!scenes.levels!dYKdGdh2PbtXs32a.defaultLevel0000' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.384369 7f15ce3fc6c0 Recovering log #287
2026/06/07-22:26:23.393736 7f15ce3fc6c0 Delete type=3 #285
2026/06/07-22:26:23.393754 7f15ce3fc6c0 Delete type=0 #287
2026/06/07-23:28:18.030882 7f15cdbfb6c0 Level-0 table #292: started
2026/06/07-23:28:18.030892 7f15cdbfb6c0 Level-0 table #292: 0 bytes OK
2026/06/07-23:28:18.037057 7f15cdbfb6c0 Delete type=0 #290
2026/06/07-23:28:18.050563 7f15cdbfb6c0 Manual compaction at level-0 from '!scenes!dYKdGdh2PbtXs32a' @ 72057594037927935 : 1 .. '!scenes.levels!dYKdGdh2PbtXs32a.defaultLevel0000' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.379353 7f65c77ef6c0 Recovering log #303
2026/06/26-16:44:09.388416 7f65c77ef6c0 Delete type=3 #301
2026/06/26-16:44:09.388444 7f65c77ef6c0 Delete type=0 #303
2026/06/26-16:50:27.934717 7f65c57eb6c0 Level-0 table #309: started
2026/06/26-16:50:27.934749 7f65c57eb6c0 Level-0 table #309: 0 bytes OK
2026/06/26-16:50:27.969220 7f65c57eb6c0 Delete type=0 #307
2026/06/26-16:50:28.051030 7f65c57eb6c0 Manual compaction at level-0 from '!scenes!dYKdGdh2PbtXs32a' @ 72057594037927935 : 1 .. '!scenes.levels!dYKdGdh2PbtXs32a.defaultLevel0000' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000251
MANIFEST-000267
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.466064 7f15cf3fe6c0 Recovering log #249
2026/06/07-23:29:46.475048 7f15cf3fe6c0 Delete type=3 #247
2026/06/07-23:29:46.475064 7f15cf3fe6c0 Delete type=0 #249
2026/06/07-23:51:38.125314 7f15cdbfb6c0 Level-0 table #254: started
2026/06/07-23:51:38.125332 7f15cdbfb6c0 Level-0 table #254: 0 bytes OK
2026/06/07-23:51:38.131999 7f15cdbfb6c0 Delete type=0 #252
2026/06/07-23:51:38.138087 7f15cdbfb6c0 Manual compaction at level-0 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
2026/06/26-16:50:35.830639 7f65c6fee6c0 Recovering log #265
2026/06/26-16:50:35.873796 7f65c6fee6c0 Delete type=3 #263
2026/06/26-16:50:35.873865 7f65c6fee6c0 Delete type=0 #265
2026/06/26-17:04:51.167189 7f65c57eb6c0 Level-0 table #270: started
2026/06/26-17:04:51.167221 7f65c57eb6c0 Level-0 table #270: 0 bytes OK
2026/06/26-17:04:51.173071 7f65c57eb6c0 Delete type=0 #268
2026/06/26-17:04:51.179005 7f65c57eb6c0 Manual compaction at level-0 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.257110 7f15cfbff6c0 Recovering log #245
2026/06/07-22:26:23.265916 7f15cfbff6c0 Delete type=3 #243
2026/06/07-22:26:23.265933 7f15cfbff6c0 Delete type=0 #245
2026/06/07-23:28:17.950047 7f15cdbfb6c0 Level-0 table #250: started
2026/06/07-23:28:17.950062 7f15cdbfb6c0 Level-0 table #250: 0 bytes OK
2026/06/07-23:28:17.956864 7f15cdbfb6c0 Delete type=0 #248
2026/06/07-23:28:17.968783 7f15cdbfb6c0 Manual compaction at level-0 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.214036 7f65c77ef6c0 Recovering log #261
2026/06/26-16:44:09.223612 7f65c77ef6c0 Delete type=3 #259
2026/06/26-16:44:09.223634 7f65c77ef6c0 Delete type=0 #261
2026/06/26-16:50:27.276005 7f65c57eb6c0 Level-0 table #266: started
2026/06/26-16:50:27.276043 7f65c57eb6c0 Level-0 table #266: 0 bytes OK
2026/06/26-16:50:27.312464 7f65c57eb6c0 Delete type=0 #264
2026/06/26-16:50:27.356573 7f65c57eb6c0 Manual compaction at level-0 from '!items!6bmjc4MUduGs9s6n' @ 72057594037927935 : 1 .. '!items!t692JcsGHG4YJIlM' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000343
MANIFEST-000359
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.455708 7f15cfbff6c0 Recovering log #341
2026/06/07-23:29:46.465016 7f15cfbff6c0 Delete type=3 #339
2026/06/07-23:29:46.465034 7f15cfbff6c0 Delete type=0 #341
2026/06/07-23:51:38.112458 7f15cdbfb6c0 Level-0 table #346: started
2026/06/07-23:51:38.112490 7f15cdbfb6c0 Level-0 table #346: 0 bytes OK
2026/06/07-23:51:38.118647 7f15cdbfb6c0 Delete type=0 #344
2026/06/07-23:51:38.138072 7f15cdbfb6c0 Manual compaction at level-0 from '!items!0LlzDyCurJedqeyG' @ 72057594037927935 : 1 .. '!items!tq6mEgXog7h4VyWk' @ 0 : 0; will stop at (end)
2026/06/26-16:50:35.778574 7f65c67ed6c0 Recovering log #357
2026/06/26-16:50:35.827648 7f65c67ed6c0 Delete type=3 #355
2026/06/26-16:50:35.827701 7f65c67ed6c0 Delete type=0 #357
2026/06/26-17:04:51.153653 7f65c57eb6c0 Level-0 table #362: started
2026/06/26-17:04:51.153710 7f65c57eb6c0 Level-0 table #362: 0 bytes OK
2026/06/26-17:04:51.160069 7f65c57eb6c0 Delete type=0 #360
2026/06/26-17:04:51.178981 7f65c57eb6c0 Manual compaction at level-0 from '!items!0LlzDyCurJedqeyG' @ 72057594037927935 : 1 .. '!items!tq6mEgXog7h4VyWk' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.246051 7f15cebfd6c0 Recovering log #337
2026/06/07-22:26:23.256115 7f15cebfd6c0 Delete type=3 #335
2026/06/07-22:26:23.256136 7f15cebfd6c0 Delete type=0 #337
2026/06/07-23:28:17.962867 7f15cdbfb6c0 Level-0 table #342: started
2026/06/07-23:28:17.962881 7f15cdbfb6c0 Level-0 table #342: 0 bytes OK
2026/06/07-23:28:17.968718 7f15cdbfb6c0 Delete type=0 #340
2026/06/07-23:28:17.968872 7f15cdbfb6c0 Manual compaction at level-0 from '!items!0LlzDyCurJedqeyG' @ 72057594037927935 : 1 .. '!items!tq6mEgXog7h4VyWk' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.202243 7f65c6fee6c0 Recovering log #353
2026/06/26-16:44:09.211998 7f65c6fee6c0 Delete type=3 #351
2026/06/26-16:44:09.212054 7f65c6fee6c0 Delete type=0 #353
2026/06/26-16:50:27.250032 7f65c57eb6c0 Level-0 table #358: started
2026/06/26-16:50:27.250114 7f65c57eb6c0 Level-0 table #358: 0 bytes OK
2026/06/26-16:50:27.275860 7f65c57eb6c0 Delete type=0 #356
2026/06/26-16:50:27.356560 7f65c57eb6c0 Manual compaction at level-0 from '!items!0LlzDyCurJedqeyG' @ 72057594037927935 : 1 .. '!items!tq6mEgXog7h4VyWk' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000444
MANIFEST-000460
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.584487 7f15ce3fc6c0 Recovering log #442
2026/06/07-23:29:46.594077 7f15ce3fc6c0 Delete type=3 #440
2026/06/07-23:29:46.594097 7f15ce3fc6c0 Delete type=0 #442
2026/06/07-23:51:38.180421 7f15cdbfb6c0 Level-0 table #447: started
2026/06/07-23:51:38.180431 7f15cdbfb6c0 Level-0 table #447: 0 bytes OK
2026/06/07-23:51:38.186270 7f15cdbfb6c0 Delete type=0 #445
2026/06/07-23:51:38.199263 7f15cdbfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2026/06/26-16:50:36.359117 7f65c6fee6c0 Recovering log #458
2026/06/26-16:50:36.402497 7f65c6fee6c0 Delete type=3 #456
2026/06/26-16:50:36.402540 7f65c6fee6c0 Delete type=0 #458
2026/06/26-17:04:51.222425 7f65c57eb6c0 Level-0 table #463: started
2026/06/26-17:04:51.222438 7f65c57eb6c0 Level-0 table #463: 0 bytes OK
2026/06/26-17:04:51.228880 7f65c57eb6c0 Delete type=0 #461
2026/06/26-17:04:51.234856 7f65c57eb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.373874 7f15cebfd6c0 Recovering log #438
2026/06/07-22:26:23.383224 7f15cebfd6c0 Delete type=3 #436
2026/06/07-22:26:23.383242 7f15cebfd6c0 Delete type=0 #438
2026/06/07-23:28:18.025158 7f15cdbfb6c0 Level-0 table #443: started
2026/06/07-23:28:18.025168 7f15cdbfb6c0 Level-0 table #443: 0 bytes OK
2026/06/07-23:28:18.030846 7f15cdbfb6c0 Delete type=0 #441
2026/06/07-23:28:18.050542 7f15cdbfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.367262 7f65c67ed6c0 Recovering log #454
2026/06/26-16:44:09.376869 7f65c67ed6c0 Delete type=3 #452
2026/06/26-16:44:09.376898 7f65c67ed6c0 Delete type=0 #454
2026/06/26-16:50:27.905035 7f65c57eb6c0 Level-0 table #459: started
2026/06/26-16:50:27.905069 7f65c57eb6c0 Level-0 table #459: 0 bytes OK
2026/06/26-16:50:27.934582 7f65c57eb6c0 Delete type=0 #457
2026/06/26-16:50:28.051015 7f65c57eb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000469
MANIFEST-000485
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.573046 7f15cf3fe6c0 Recovering log #467
2026/06/07-23:29:46.582721 7f15cf3fe6c0 Delete type=3 #465
2026/06/07-23:29:46.582740 7f15cf3fe6c0 Delete type=0 #467
2026/06/07-23:51:38.186317 7f15cdbfb6c0 Level-0 table #472: started
2026/06/07-23:51:38.186330 7f15cdbfb6c0 Level-0 table #472: 0 bytes OK
2026/06/07-23:51:38.192738 7f15cdbfb6c0 Delete type=0 #470
2026/06/07-23:51:38.205122 7f15cdbfb6c0 Manual compaction at level-0 from '!items!07bq0fsbn653i81y' @ 72057594037927935 : 1 .. '!items!zKvlDHBalR4UdwUx' @ 0 : 0; will stop at (end)
2026/06/26-16:50:36.309531 7f65c5fec6c0 Recovering log #483
2026/06/26-16:50:36.355315 7f65c5fec6c0 Delete type=3 #481
2026/06/26-16:50:36.355382 7f65c5fec6c0 Delete type=0 #483
2026/06/26-17:04:51.228946 7f65c57eb6c0 Level-0 table #488: started
2026/06/26-17:04:51.228960 7f65c57eb6c0 Level-0 table #488: 0 bytes OK
2026/06/26-17:04:51.234799 7f65c57eb6c0 Delete type=0 #486
2026/06/26-17:04:51.247286 7f65c57eb6c0 Manual compaction at level-0 from '!items!07bq0fsbn653i81y' @ 72057594037927935 : 1 .. '!items!zKvlDHBalR4UdwUx' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.363033 7f15cf3fe6c0 Recovering log #463
2026/06/07-22:26:23.372436 7f15cf3fe6c0 Delete type=3 #461
2026/06/07-22:26:23.372455 7f15cf3fe6c0 Delete type=0 #463
2026/06/07-23:28:18.018436 7f15cdbfb6c0 Level-0 table #468: started
2026/06/07-23:28:18.018450 7f15cdbfb6c0 Level-0 table #468: 0 bytes OK
2026/06/07-23:28:18.025050 7f15cdbfb6c0 Delete type=0 #466
2026/06/07-23:28:18.025114 7f15cdbfb6c0 Manual compaction at level-0 from '!items!07bq0fsbn653i81y' @ 72057594037927935 : 1 .. '!items!zKvlDHBalR4UdwUx' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.352314 7f65c5fec6c0 Recovering log #479
2026/06/26-16:44:09.362983 7f65c5fec6c0 Delete type=3 #477
2026/06/26-16:44:09.363059 7f65c5fec6c0 Delete type=0 #479
2026/06/26-16:50:27.876386 7f65c57eb6c0 Level-0 table #484: started
2026/06/26-16:50:27.876417 7f65c57eb6c0 Level-0 table #484: 0 bytes OK
2026/06/26-16:50:27.904743 7f65c57eb6c0 Delete type=0 #482
2026/06/26-16:50:27.905020 7f65c57eb6c0 Manual compaction at level-0 from '!items!07bq0fsbn653i81y' @ 72057594037927935 : 1 .. '!items!zKvlDHBalR4UdwUx' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000345
MANIFEST-000361
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.530421 7f15cf3fe6c0 Recovering log #343
2026/06/07-23:29:46.540058 7f15cf3fe6c0 Delete type=3 #341
2026/06/07-23:29:46.540076 7f15cf3fe6c0 Delete type=0 #343
2026/06/07-23:51:38.156014 7f15cdbfb6c0 Level-0 table #348: started
2026/06/07-23:51:38.156025 7f15cdbfb6c0 Level-0 table #348: 0 bytes OK
2026/06/07-23:51:38.162030 7f15cdbfb6c0 Delete type=0 #346
2026/06/07-23:51:38.180301 7f15cdbfb6c0 Manual compaction at level-0 from '!items!0CYP1JpZu9mst5tK' @ 72057594037927935 : 1 .. '!items!zhPPsmTtLv7cyNHJ' @ 0 : 0; will stop at (end)
2026/06/26-16:50:36.115607 7f65c67ed6c0 Recovering log #359
2026/06/26-16:50:36.160048 7f65c67ed6c0 Delete type=3 #357
2026/06/26-16:50:36.160118 7f65c67ed6c0 Delete type=0 #359
2026/06/26-17:04:51.197561 7f65c57eb6c0 Level-0 table #364: started
2026/06/26-17:04:51.197577 7f65c57eb6c0 Level-0 table #364: 0 bytes OK
2026/06/26-17:04:51.203315 7f65c57eb6c0 Delete type=0 #362
2026/06/26-17:04:51.210217 7f65c57eb6c0 Manual compaction at level-0 from '!items!0CYP1JpZu9mst5tK' @ 72057594037927935 : 1 .. '!items!zhPPsmTtLv7cyNHJ' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.320290 7f15ce3fc6c0 Recovering log #339
2026/06/07-22:26:23.329632 7f15ce3fc6c0 Delete type=3 #337
2026/06/07-22:26:23.329650 7f15ce3fc6c0 Delete type=0 #339
2026/06/07-23:28:17.993768 7f15cdbfb6c0 Level-0 table #344: started
2026/06/07-23:28:17.993784 7f15cdbfb6c0 Level-0 table #344: 0 bytes OK
2026/06/07-23:28:17.999897 7f15cdbfb6c0 Delete type=0 #342
2026/06/07-23:28:18.000045 7f15cdbfb6c0 Manual compaction at level-0 from '!items!0CYP1JpZu9mst5tK' @ 72057594037927935 : 1 .. '!items!zhPPsmTtLv7cyNHJ' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.287855 7f65c5fec6c0 Recovering log #355
2026/06/26-16:44:09.297609 7f65c5fec6c0 Delete type=3 #353
2026/06/26-16:44:09.297676 7f65c5fec6c0 Delete type=0 #355
2026/06/26-16:50:27.717794 7f65c57eb6c0 Level-0 table #360: started
2026/06/26-16:50:27.717817 7f65c57eb6c0 Level-0 table #360: 0 bytes OK
2026/06/26-16:50:27.739064 7f65c57eb6c0 Delete type=0 #358
2026/06/26-16:50:27.775136 7f65c57eb6c0 Manual compaction at level-0 from '!items!0CYP1JpZu9mst5tK' @ 72057594037927935 : 1 .. '!items!zhPPsmTtLv7cyNHJ' @ 0 : 0; will stop at (end)
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000345
MANIFEST-000361
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-23:29:46.541402 7f15cebfd6c0 Recovering log #343
2026/06/07-23:29:46.550608 7f15cebfd6c0 Delete type=3 #341
2026/06/07-23:29:46.550634 7f15cebfd6c0 Delete type=0 #343
2026/06/07-23:51:38.167745 7f15cdbfb6c0 Level-0 table #348: started
2026/06/07-23:51:38.167758 7f15cdbfb6c0 Level-0 table #348: 0 bytes OK
2026/06/07-23:51:38.173528 7f15cdbfb6c0 Delete type=0 #346
2026/06/07-23:51:38.180328 7f15cdbfb6c0 Manual compaction at level-0 from '!items!3J0HKjcVtBT39BiR' @ 72057594037927935 : 1 .. '!items!zeOtWz6oscp8Su5l' @ 0 : 0; will stop at (end)
2026/06/26-16:50:36.163491 7f65c5fec6c0 Recovering log #359
2026/06/26-16:50:36.207600 7f65c5fec6c0 Delete type=3 #357
2026/06/26-16:50:36.207635 7f65c5fec6c0 Delete type=0 #359
2026/06/26-17:04:51.203528 7f65c57eb6c0 Level-0 table #364: started
2026/06/26-17:04:51.203544 7f65c57eb6c0 Level-0 table #364: 0 bytes OK
2026/06/26-17:04:51.210174 7f65c57eb6c0 Delete type=0 #362
2026/06/26-17:04:51.222418 7f65c57eb6c0 Manual compaction at level-0 from '!items!3J0HKjcVtBT39BiR' @ 72057594037927935 : 1 .. '!items!zeOtWz6oscp8Su5l' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/06/07-22:26:23.331166 7f15cfbff6c0 Recovering log #339
2026/06/07-22:26:23.340799 7f15cfbff6c0 Delete type=3 #337
2026/06/07-22:26:23.340822 7f15cfbff6c0 Delete type=0 #339
2026/06/07-23:28:18.000062 7f15cdbfb6c0 Level-0 table #344: started
2026/06/07-23:28:18.000087 7f15cdbfb6c0 Level-0 table #344: 0 bytes OK
2026/06/07-23:28:18.006733 7f15cdbfb6c0 Delete type=0 #342
2026/06/07-23:28:18.025099 7f15cdbfb6c0 Manual compaction at level-0 from '!items!3J0HKjcVtBT39BiR' @ 72057594037927935 : 1 .. '!items!zeOtWz6oscp8Su5l' @ 0 : 0; will stop at (end)
2026/06/26-16:44:09.301416 7f65c67ed6c0 Recovering log #355
2026/06/26-16:44:09.324026 7f65c67ed6c0 Delete type=3 #353
2026/06/26-16:44:09.324113 7f65c67ed6c0 Delete type=0 #355
2026/06/26-16:50:27.813918 7f65c57eb6c0 Level-0 table #360: started
2026/06/26-16:50:27.813948 7f65c57eb6c0 Level-0 table #360: 0 bytes OK
2026/06/26-16:50:27.840848 7f65c57eb6c0 Delete type=0 #358
2026/06/26-16:50:27.904900 7f65c57eb6c0 Manual compaction at level-0 from '!items!3J0HKjcVtBT39BiR' @ 72057594037927935 : 1 .. '!items!zeOtWz6oscp8Su5l' @ 0 : 0; will stop at (end)
+186
View File
@@ -2167,6 +2167,104 @@ li {
.mournblade-post-item .post-item-description i {
color: #5a2d00;
}
.mournblade-post-item .post-item-price {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
padding: 5px 10px;
background: rgba(139, 69, 19, 0.06);
border-bottom: 1px solid rgba(139, 69, 19, 0.3);
font-size: 0.85rem;
}
.mournblade-post-item .post-item-price .post-price-label {
font-weight: bold;
color: #5a2d00;
font-size: 0.75rem;
text-transform: uppercase;
margin-right: 2px;
}
.mournblade-post-item .post-item-price .post-price {
background: rgba(255, 255, 255, 0.7);
border: 1px solid rgba(139, 69, 19, 0.3);
border-radius: 3px;
padding: 1px 6px;
color: #2a1400;
}
.mournblade-post-item .post-item-price .post-price.post-price-rarete {
background: rgba(255, 215, 0, 0.15);
border-color: rgba(255, 215, 0, 0.4);
color: #8b6914;
}
.mournblade-post-item .post-stat-bool {
background: rgba(76, 175, 80, 0.12) !important;
border-color: rgba(76, 175, 80, 0.4) !important;
}
.mournblade-post-item .post-stat-bool .stat-value {
color: #2e7d32;
}
.mournblade-post-item .post-stat-used {
background: rgba(198, 40, 40, 0.12) !important;
border-color: rgba(198, 40, 40, 0.4) !important;
}
.mournblade-post-item .post-stat-used .stat-value {
color: #c62828;
}
.mournblade-post-item .post-item-predilections {
padding: 6px 10px;
background: rgba(255, 255, 255, 0.5);
border-bottom: 1px solid rgba(139, 69, 19, 0.3);
}
.mournblade-post-item .post-item-predilections h4 {
margin: 0 0 4px 0;
color: #5a2d00;
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.mournblade-post-item .post-item-predilections ul {
margin: 0;
padding: 0;
list-style: none;
}
.mournblade-post-item .post-item-predilections ul li {
padding: 2px 0;
font-size: 0.85rem;
color: #2a1400;
border-bottom: 1px solid rgba(139, 69, 19, 0.1);
}
.mournblade-post-item .post-item-predilections ul li:last-child {
border-bottom: none;
}
.mournblade-post-item .post-item-predilections .pred-name {
color: #2a1400;
font-weight: bold;
}
.mournblade-post-item .post-item-predilections .pred-desc {
color: #5a2d00;
}
.mournblade-post-item .post-item-predilections .pred-badge {
display: inline-block;
font-size: 0.7rem;
padding: 0 4px;
border-radius: 2px;
margin-left: 3px;
}
.mournblade-post-item .post-item-predilections .pred-maitrise {
color: #1565c0;
background: rgba(21, 101, 192, 0.1);
border: 1px solid rgba(21, 101, 192, 0.3);
}
.mournblade-post-item .post-item-predilections .pred-acquise {
color: #2e7d32;
background: rgba(46, 125, 50, 0.1);
border: 1px solid rgba(46, 125, 50, 0.3);
}
.mournblade-post-item .post-item-predilections .pred-used {
color: #c62828;
background: rgba(198, 40, 40, 0.1);
border: 1px solid rgba(198, 40, 40, 0.3);
}
/* -------------------------------------------- */
.mournblade-welcome-message {
background: linear-gradient(135deg, rgba(139, 69, 19, 0.15) 0%, rgba(42, 20, 0, 0.2) 100%);
@@ -2280,6 +2378,31 @@ li {
.mournblade-welcome-message .welcome-footer i {
font-size: 1rem;
}
.invocation-actor-list {
margin: 4px 10px;
border: 1px solid rgba(139, 69, 19, 0.3);
border-radius: 4px;
overflow: hidden;
}
.invocation-actor-list .invocation-actor-row {
padding: 3px 6px;
border-bottom: 1px solid rgba(139, 69, 19, 0.1);
}
.invocation-actor-list .invocation-actor-row:last-child {
border-bottom: none;
}
.invocation-actor-list .invocation-actor-row img {
width: 28px;
height: 28px;
}
.invocation-dropzone {
padding: 4px 10px 6px;
text-align: center;
font-size: 0.8rem;
color: #8b6914;
border-top: 1px dashed rgba(139, 69, 19, 0.3);
margin: 0 10px;
}
@keyframes pulse {
0%,
100% {
@@ -2312,6 +2435,9 @@ li {
/* Field labels */
/* Editor fields */
/* Section headings in item sheet tabs */
/* Section title headings inside sheet-box (Profil, etc.) */
/* Suppress formInput label when heading already provides it */
/* ProseMirror editor in sheet-box — ensure readable background */
}
.fvtt-mournblade-cyd-2-0.item .window-content {
padding: 0;
@@ -2564,6 +2690,27 @@ li {
border-radius: 3px;
flex: 1;
}
.fvtt-mournblade-cyd-2-0.item .tab .sheet-box h3,
.fvtt-mournblade-cyd-2-0.item .tab .sheet-box .items-title-text {
font-family: "CentaurMT", "Palatino Linotype", serif;
font-size: 0.85rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 1px;
color: #f0dfc0 !important;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.9);
margin: 0.25rem 0;
padding: 0.2rem 0;
}
.fvtt-mournblade-cyd-2-0.item .tab .sheet-box .form-group > label {
display: none;
}
.fvtt-mournblade-cyd-2-0.item .tab .sheet-box .editor {
min-height: 4rem;
background: rgba(255, 250, 240, 0.9);
border: 1px solid rgba(139, 69, 19, 0.35);
border-radius: 3px;
}
/* ==================== Actor Sheet Styles ==================== */
.fvtt-mournblade-cyd-2-0.actor {
background: url("../assets/ui/pc_sheet_bg.webp") repeat;
@@ -3736,6 +3883,45 @@ li {
border-radius: 2px;
color: #f0dfc0;
}
.fvtt-mournblade-cyd-2-0.actor .talent-used-toggle {
flex: 0 0 auto;
display: inline-flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
cursor: pointer;
border-radius: 3px;
transition: all 0.15s;
text-decoration: none;
margin-right: 0.25rem;
}
.fvtt-mournblade-cyd-2-0.actor .talent-used-toggle i {
font-size: 0.95rem;
color: #8a7a5a;
}
.fvtt-mournblade-cyd-2-0.actor .talent-used-toggle:hover {
background: rgba(139, 69, 19, 0.2);
transform: scale(1.1);
}
.fvtt-mournblade-cyd-2-0.actor .talent-used-toggle:hover i {
color: #2a1a0a;
}
.fvtt-mournblade-cyd-2-0.actor .talent-used-toggle.used i {
color: #4a7c59;
}
.fvtt-mournblade-cyd-2-0.actor .talent-used-toggle.used:hover i {
color: #2d5a3a;
}
.fvtt-mournblade-cyd-2-0.actor .item-list li.item.talent-used {
opacity: 0.6;
}
.fvtt-mournblade-cyd-2-0.actor .item-list li.item.talent-used .item-name-img {
filter: grayscale(60%);
}
.fvtt-mournblade-cyd-2-0.actor .item-list li.item.talent-used .talent-used-toggle.used i {
color: #6aaa7a;
}
/* ==================== Creature Sheet Specific Styles ==================== */
.fvtt-mournblade-cyd-2-0.actor.creature-sheet .background-sheet-header-creature {
background: linear-gradient(135deg, rgba(0, 60, 0, 0.15) 0%, rgba(20, 80, 20, 0.1) 100%);
+3 -2
View File
@@ -45,7 +45,7 @@
"monnaie": { "htmlFields": ["description"] },
"equipement": { "htmlFields": ["description"] },
"ressource": { "htmlFields": ["description"] },
"don": { "htmlFields": ["description"] },
"don": { "htmlFields": ["description", "sacrifice"] },
"pacte": { "htmlFields": ["description"] },
"rune": { "htmlFields": ["description"] },
"runeeffect": { "htmlFields": ["description"] },
@@ -54,7 +54,8 @@
"traitespece": { "htmlFields": ["description"] },
"traitdemoniaque": { "htmlFields": ["description"] },
"pouvoirselementaire": { "htmlFields": ["description"] },
"capaciteautomata": { "htmlFields": ["description"] }
"capaciteautomata": { "htmlFields": ["description"] },
"faiblessedemoniaque": { "htmlFields": ["description"] }
}
},
"flags": {

Some files were not shown because too many files have changed in this diff Show More