Compare commits

..

12 Commits

Author SHA1 Message Date
939cfb1e86 Update compendiums 2025-09-15 22:23:25 +02:00
5f5e0e2a8c Update magie 2025-09-15 21:10:46 +02:00
c993a9a5b1 Update magie 2025-09-15 21:09:09 +02:00
cc7de0e53c Amelioration diverses pour la magie 2025-09-14 20:12:02 +02:00
4d41986c12 Ajout pour la magie 2025-09-13 00:24:58 +02:00
d04731f475 Ajout pour la magie 2025-09-13 00:24:08 +02:00
44a641a0ca Update arts obscurs 2025-08-13 09:39:04 +02:00
1ad022d193 Update arts obscurs 2025-08-13 09:38:35 +02:00
1c7cf343b1 Update arts obscurs 2025-08-12 23:24:50 +02:00
d4b00e3508 Update arts obscurs 2025-08-12 23:20:51 +02:00
adc912e6cd Ajout/upgrade des arts obscurs 2025-08-11 22:53:23 +02:00
51a457ebf6 Foundry v13 migration 2025-05-02 08:34:22 +02:00
118 changed files with 4115 additions and 2042 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -6,7 +6,7 @@
import { HeritiersUtility } from "./heritiers-utility.js";
/* -------------------------------------------- */
export class HeritiersActorSheet extends ActorSheet {
export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
/** @override */
static get defaultOptions() {
@@ -24,7 +24,7 @@ export class HeritiersActorSheet extends ActorSheet {
/* -------------------------------------------- */
async getData() {
const objectData = foundry.utils.duplicate(this.object)
const objectData = foundry.utils.duplicate(this.object)
let formData = {
title: this.title,
@@ -38,31 +38,32 @@ export class HeritiersActorSheet extends ActorSheet {
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
limited: this.object.limited,
skills: this.actor.getSkills(),
utileSkillsMental :this.actor.organizeUtileSkills("mental"),
utileSkillsPhysical :this.actor.organizeUtileSkills("physical"),
futileSkills :this.actor.organizeFutileSkills(),
utileSkillsMental: this.actor.organizeUtileSkills("mental"),
utileSkillsPhysical: this.actor.organizeUtileSkills("physical"),
competencesMagie: HeritiersUtility.getCompetencesMagie(),
futileSkills: this.actor.organizeFutileSkills(),
contacts: this.actor.organizeContacts(),
armes: foundry.utils.duplicate(this.actor.getWeapons()),
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
pouvoirs: foundry.utils.duplicate(this.actor.getPouvoirs()),
fee: foundry.utils.duplicate(this.actor.getFee() || {} ),
fee: foundry.utils.duplicate(this.actor.getFee() || {}),
protections: foundry.utils.duplicate(this.actor.getArmors()),
combat: this.actor.getCombatValues(),
combat: this.actor.getCombatValues(),
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
avantages: foundry.utils.duplicate(this.actor.getAvantages()),
atouts: foundry.utils.duplicate(this.actor.getAtouts()),
capacites: foundry.utils.duplicate(this.actor.getCapacites()),
desavantages: foundry.utils.duplicate(this.actor.getDesavantages()),
profils: foundry.utils.duplicate(this.actor.getProfils()),
pvMalus: this.actor.getPvMalus(),
pvMalus: this.actor.getPvMalus(),
heritage: game.settings.get("fvtt-les-heritiers", "heritiers-heritage"),
initiative: this.actor.getFlag("world", "last-initiative") || -1,
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
revesetranges: await TextEditor.enrichHTML(this.object.system.biodata.revesetranges, {async: true}),
secretsdecouverts: await TextEditor.enrichHTML(this.object.system.biodata.secretsdecouverts, {async: true}),
questions: await TextEditor.enrichHTML(this.object.system.biodata.questions, {async: true}),
habitat: await TextEditor.enrichHTML(this.object.system.biodata.habitat, {async: true}),
playernotes: await TextEditor.enrichHTML(this.object.system.biodata.playernotes, {async: true}),
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, { async: true }),
revesetranges: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.revesetranges, { async: true }),
secretsdecouverts: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.secretsdecouverts, { async: true }),
questions: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.questions, { async: true }),
habitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.habitat, { async: true }),
playernotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.playernotes, { async: true }),
magieList: this.actor.prepareMagie(),
options: this.options,
owner: this.document.isOwner,
@@ -121,14 +122,14 @@ export class HeritiersActorSheet extends ActorSheet {
// Everything below here is only needed if the sheet is editable
if (!this.options.editable) return;
// Update Inventory Item
html.find('.item-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
const item = this.actor.items.get( itemId )
const item = this.actor.items.get(itemId)
item.sheet.render(true)
})
})
// Delete Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
@@ -136,8 +137,8 @@ export class HeritiersActorSheet extends ActorSheet {
})
html.find('.edit-item-data').change(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
let itemType = li.data("item-type")
let itemId = li.data("item-id")
let itemType = li.data("item-type")
let itemField = $(ev.currentTarget).data("item-field")
let dataType = $(ev.currentTarget).data("dtype")
let value = ev.currentTarget.value
@@ -150,17 +151,17 @@ export class HeritiersActorSheet extends ActorSheet {
let value = Number($(event.currentTarget).data("adversite-value"))
this.actor.incDecAdversite(adv, value)
})
html.find('.quantity-modify').click(event => {
const li = $(event.currentTarget).parents(".item")
const value = Number($(event.currentTarget).data("quantite-value"))
this.actor.incDecQuantity( li.data("item-id"), value );
this.actor.incDecQuantity(li.data("item-id"), value);
})
html.find('.roll-initiative').click((event) => {
this.actor.rollInitiative()
})
html.find('.roll-carac').click((event) => {
const key = $(event.currentTarget).data("key")
this.actor.rollCarac(key, false)
@@ -168,42 +169,42 @@ export class HeritiersActorSheet extends ActorSheet {
html.find('.roll-rang').click((event) => {
const key = $(event.currentTarget).data("rang-key")
this.actor.rollRang(key, false)
})
})
html.find('.roll-root-competence').click((event) => {
const compKey = $(event.currentTarget).data("attr-key")
this.actor.rollRootCompetence(compKey)
})
html.find('.roll-competence').click((event) => {
const li = $(event.currentTarget).parents(".item")
let compId = li.data("item-id")
let compId = li.data("item-id")
this.actor.rollCompetence(compId)
})
html.find('.roll-sort').click((event) => {
const li = $(event.currentTarget).parents(".item")
let sortId = li.data("item-id")
let sortId = li.data("item-id")
this.actor.rollSort(sortId)
})
html.find('.roll-attaque-arme').click((event) => {
const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id")
let armeId = li.data("item-id")
this.actor.rollAttaqueArme(armeId)
})
html.find('.roll-attaque-brutale-arme').click((event) => {
const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id")
let armeId = li.data("item-id")
this.actor.rollAttaqueBrutaleArme(armeId)
})
})
html.find('.roll-attaque-charge-arme').click((event) => {
const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id")
let armeId = li.data("item-id")
this.actor.rollAttaqueChargeArme(armeId)
})
html.find('.roll-assomer-arme').click((event) => {
const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id")
let armeId = li.data("item-id")
this.actor.rollAssomerArme(armeId)
})
html.find('.roll-pouvoir').click((event) => {
const li = $(event.currentTarget).parents(".item")
let pouvoirId = li.data("item-id")
@@ -215,21 +216,29 @@ export class HeritiersActorSheet extends ActorSheet {
html.find('.item-add').click((event) => {
const itemType = $(event.currentTarget).data("type")
if (itemType == "sort") {
// Get data-sort-competence
let sortCompetence = $(event.currentTarget).data("sort-competence");
if (sortCompetence) {
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType} de ${sortCompetence}`, type: itemType, system: { competence: sortCompetence } }], { renderSheet: true })
return
}
}
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
})
html.find('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore;
this.render(true);
});
});
html.find('.item-equip').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.equipItem( li.data("item-id") );
this.render(true);
this.actor.equipItem(li.data("item-id"));
this.render(true);
});
}
/* -------------------------------------------- */
/** @override */
setPosition(options = {}) {

View File

@@ -17,8 +17,8 @@ export class HeritiersActor extends Actor {
/**
* Override the create() function to provide additional SoS functionality.
*
* This overrided create() function adds initial items
* Namely: Basic skills, money,
* This overrided create() function adds initial items
* Namely: Basic skills, money,
*
* @param {Object} data Barebones actor data which this function adds onto.
* @param {Object} options (Unused) Additional options which customize the creation workflow.
@@ -160,6 +160,7 @@ export class HeritiersActor extends Actor {
HeritiersUtility.sortArrayObjectsByName(comp)
return comp
}
prepareMagie() {
let magieList = []
for (let item of this.items) {
@@ -167,10 +168,56 @@ export class HeritiersActor extends Actor {
let magie = {}
magie.name = item.name
magie.competence = foundry.utils.duplicate(item)
magie.sorts = []
for (let sort of this.items) {
if (sort.type == "sort" && sort.system.competence == item.name) {
magie.sorts.push(sort)
magie.rang = Math.round(item.system.niveau / 2);
magie.rangGenericName = game.system.lesheritiers.config.rangName[magie.rang];
console.log("Magie", item.name, item.system.niveau, magie.rang, magie.rangGenericName)
//magie.rangSpecificName = game.system.lesheritiers.config.rangNameSpecific[item.name][magie.rangGenericName];
magie.sorts = {}
if (item.name == "Magie du Clan") {
magie.sorts = {
"soufflecombat": {
1: { nomNiveau: magie.competence.system.nomniveausouffle.soufflecombat["1"], sorts: [] },
2: { nomNiveau: magie.competence.system.nomniveausouffle.soufflecombat["2"], sorts: [] },
3: { nomNiveau: magie.competence.system.nomniveausouffle.soufflecombat["3"], sorts: [] },
4: { nomNiveau: magie.competence.system.nomniveausouffle.soufflecombat["4"], sorts: [] }
},
"soufflemouvement": {
1: { nomNiveau: magie.competence.system.nomniveausouffle.soufflemouvement["1"], sorts: [] },
2: { nomNiveau: magie.competence.system.nomniveausouffle.soufflemouvement["2"], sorts: [] },
3: { nomNiveau: magie.competence.system.nomniveausouffle.soufflemouvement["3"], sorts: [] },
4: { nomNiveau: magie.competence.system.nomniveausouffle.soufflemouvement["4"], sorts: [] }
},
"souffleesprit": {
1: { nomNiveau: magie.competence.system.nomniveausouffle.souffleesprit["1"], sorts: [] },
2: { nomNiveau: magie.competence.system.nomniveausouffle.souffleesprit["2"], sorts: [] },
3: { nomNiveau: magie.competence.system.nomniveausouffle.souffleesprit["3"], sorts: [] },
4: { nomNiveau: magie.competence.system.nomniveausouffle.souffleesprit["4"], sorts: [] }
}
}
for (let sort of this.items) {
if (sort.type == "sort" && sort.system.competence == item.name) {
let sortObj = foundry.utils.duplicate(sort)
sortObj.sdValue = HeritiersUtility.getSDSortValue(Number(sort.system.niveau))
if (!magie.sorts[sort.system?.souffle]) {
console.warn("Sort with unknown souffle ", sort.system.souffle, sort)
continue
}
magie.sorts[sort.system.souffle][Number(sort.system.niveau)].sorts.push(sortObj)
}
}
} else {
magie.sorts = {
1: { nomNiveau: magie.competence.system.nomniveau["1"], sorts: [] },
2: { nomNiveau: magie.competence.system.nomniveau["2"], sorts: [] },
3: { nomNiveau: magie.competence.system.nomniveau["3"], sorts: [] },
4: { nomNiveau: magie.competence.system.nomniveau["4"], sorts: [] }
}
for (let sort of this.items) {
if (sort.type == "sort" && sort.system.competence == item.name) {
let sortObj = foundry.utils.duplicate(sort)
sortObj.sdValue = HeritiersUtility.getSDSortValue(Number(sort.system.niveau))
magie.sorts[Number(sort.system.niveau)].sorts.push(sortObj)
}
}
}
magieList.push(magie)
@@ -203,6 +250,28 @@ export class HeritiersActor extends Actor {
item.specList = specList.toString()
}
/* -------------------------------------------- */
organizeMagicSkills() {
let comp = {}
for (let key in game.system.lesheritiers.config.competenceProfil) {
if (game.system.lesheritiers.config.competenceProfil[key].kind == "magical")
comp[key] = { skills: [], niveau: 0 }
}
for (let item of this.items) {
if (item.type == "competence") {
if (item.system.categorie == "utile" && comp[item.system.profil]) {
this.prepareUtileSkill(item)
comp[item.system.profil].skills.push(item)
}
}
}
for (let key in comp) {
HeritiersUtility.sortArrayObjectsByName(comp[key].skills)
}
return Object.fromEntries(Object.entries(comp).sort())
}
/* -------------------------------------------- */
organizeUtileSkills(kind = "mental") {
let comp = {}
@@ -224,6 +293,7 @@ export class HeritiersActor extends Actor {
}
return Object.fromEntries(Object.entries(comp).sort())
}
/* -------------------------------------------- */
organizeContacts() {
let contactList = {}
@@ -301,7 +371,7 @@ export class HeritiersActor extends Actor {
this.update({ 'system.magie.pointsame.max': pointsAmes })
}
}
super.prepareData();
}
@@ -454,6 +524,7 @@ export class HeritiersActor extends Actor {
adversite[adv] = Math.max(adversite[adv], 0)
this.update({ 'system.adversite': adversite })
}
/* -------------------------------------------- */
async incDecQuantity(objetId, incDec = 0) {
let objetQ = this.items.get(objetId)
@@ -684,26 +755,80 @@ export class HeritiersActor extends Actor {
rollDialog.render(true)
}
/* -------------------------------------------- */
inDecCarac(key, incDec) {
let carac = this.system.caracteristiques[key]
carac.value += incDec
if (carac.value < 0 || carac.value > carac.rang) {
ui.notifications.warn("Pas assez de points dans cette caractéristique ou rang max atteint !")
return false
}
carac.value = Math.max(carac.value, 0)
carac.value = Math.min(carac.value, carac.rang)
this.update({ [`system.caracteristiques.${key}`]: carac })
return true
}
/* -------------------------------------------- */
async rollSort(sortId) {
let sort = this.items.get(sortId)
let comp = this.items.find(it => it.type =="competence" && it.name.toLowerCase() == sort.system.competence.toLowerCase())
let comp = this.items.find(it => it.type == "competence" && it.name.toLowerCase() == sort.system.competence.toLowerCase())
if (!comp) {
ui.notifications.warn("Compétence de magie associée non trouvée !")
return
}
if (sort.system.informatif) {
if (sort.system.texteinformatif) {
let chatData = { user: game.user.id, speaker: { actor: this, alias: this.name }, content: `<div class="heritiers-informatif-sort"><h4>Sort informatif !</h4>${sort.system.texteinformatif}</div>` }
ChatMessage.create(chatData)
} else {
ui.notifications.info("Ce sort est uniquement informatif et ne peut pas être lancé.")
}
return
}
let rollData = this.getCommonRollData(comp.id)
rollData.mode = "sort"
rollData.sort = foundry.utils.duplicate(sort)
rollData.sdValue = HeritiersUtility.getSDSortValue(sort.system.niveau)
rollData.sortPointsAme = sort.system.niveau
rollData.caracKey = sort.system.carac
rollData.sdValue = HeritiersUtility.getSDSortValue(Number(sort.system.niveau))
if (Number(sort.system.sdspecial) && Number(sort.system.sdspecial) > 0) {
rollData.sdValue = Number(sort.system.sdspecial)
}
rollData.sortPointsAme = Number(sort.system.niveau)
rollData.totalEsprit = 1
if (sort.system.competence == "Grand Langage") {
rollData.sortPointsAme *= 2
rollData.totalEsprit = Math.floor((rollData.sortPointsAme) / 3)
}
if (rollData.sortPointsAme > this.system.magie.pointsame.value) {
// Vérifier si au moins 1 point d'Esprit est disponible
if (this.system.caracteristiques.esp.value <= rollData.totalEsprit) {
ui.notifications.warn(`Pas assez de Points d'Esprit ni de Points d'Ame pour lancer ce sort (requis: ${rollData.totalEsprit}, disponible: ${this.system.caracteristiques.esp.value})`)
return
} else {
rollData.spendEsprit = true
ui.notifications.warn(`Vous n'avez pas assez de Points d'Ame pour lancer ce sort (requis: ${rollData.sortPointsAme}, disponible: ${this.system.magie.pointsame.value}).`)
ui.notifications.warn(`${rollData.totalEsprit} Points d'Esprit seront utilisés à la place si vous effectuez le lancer.`)
}
}
if (sort.system.carac2 != "none") {
// get the best carac between carac1 and carac2
if (this.system.caracteristiques[sort.system.carac1].value > this.system.caracteristiques[sort.system.carac2].value) {
rollData.caracKey = sort.system.carac1
} else {
rollData.caracKey = sort.system.carac2
}
rollData.caracMessage = "Ce sort peut être lancé avec " + game.system.lesheritiers.config.caracList[sort.system.carac1] + " ou " + game.system.lesheritiers.config.caracList[sort.system.carac2] + ". La meilleure caractéristique a été selectionnée."
} else {
rollData.caracKey = sort.system.carac1
}
console.log("RollData", rollData)
let rollDialog = await HeritiersRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollAttaqueArme(armeId) {
let arme = this.items.get(armeId)
@@ -881,6 +1006,23 @@ export class HeritiersActor extends Actor {
}
}
/* -------------------------------------------- */
incDecPointsAme(value) {
let newValue = this.system.magie.pointsame.value + value
newValue = Math.max(newValue, 0)
newValue = Math.min(newValue, this.system.magie.pointsame.max)
this.update({ 'system.magie.pointsame.value': newValue })
}
/* -------------------------------------------- */
incDecPV(value) {
let newValue = this.system.pv.value + value
newValue = Math.max(newValue, 0)
newValue = Math.min(newValue, this.system.pv.max)
this.update({ 'system.pv.value': newValue })
}
/* -------------------------------------------- */
incDecPointsUsage(pouvoirId, value) {
let pouvoir = this.items.get(pouvoirId)

View File

@@ -12,26 +12,26 @@ export const HERITIERS_CONFIG = {
"san": "Sang-Froid"
},
competenceCategorie : {
competenceCategorie: {
"utile": "Utile",
"futile": "Futile"
},
contactType: {
contact: "Contact",
contact: "Contact",
allie: "Allié",
ennemi: "Ennemi",
interet: "Personne d'interêt"
},
competenceProfil : {
"aventurier": {kind: "physical", name: "Aventurier"},
"roublard": {kind: "physical",name: "Roublard"},
"combattant": {kind: "physical",name:"Combattant"},
"erudit": {kind: "mental",name:"Erudit"},
"savant": {kind: "mental",name:"Savant"},
"gentleman": {kind: "mental",name:"Gentleman"},
"magie": {kind: "magical", name: "Magie"},
competenceProfil: {
"aventurier": { kind: "physical", name: "Aventurier" },
"roublard": { kind: "physical", name: "Roublard" },
"combattant": { kind: "physical", name: "Combattant" },
"erudit": { kind: "mental", name: "Erudit" },
"savant": { kind: "mental", name: "Savant" },
"gentleman": { kind: "mental", name: "Gentleman" },
"magie": { kind: "magical", name: "Magie" },
},
baseTestPouvoir: {
"feerie": "Féerie",
@@ -53,7 +53,7 @@ export const HERITIERS_CONFIG = {
},
statutMasque: {
"masque": "Masqué",
"demasque":"Démasqué"
"demasque": "Démasqué"
},
niveauPouvoir: {
"normal": "Normal",
@@ -100,8 +100,8 @@ export const HERITIERS_CONFIG = {
"main": "Main",
"tete": "Tête/Coeur"
},
categorieArme : {
categorieArme: {
"trait": "Arme de trait",
"poing": "Arme de poing",
"epaule": "Arme d'épaule",
@@ -109,7 +109,7 @@ export const HERITIERS_CONFIG = {
"blanche": "Arme blanche",
"improvise": "Arme improvisée",
"explosif": "Explosif"
},
},
typeArme: {
"naturelle": "Arme naturelle",
"trait": "Trait",
@@ -131,13 +131,13 @@ export const HERITIERS_CONFIG = {
"controlee": "Contrôlée (C)",
"prohibee": "Prohibée (P)"
},
armeDissimulation :{
armeDissimulation: {
"tresfacile": "Très facile (TF)",
"facile": "Facile (F)",
"difficile": "Difficile (D)",
"impossible": "Impossible (I)"
},
typeProtection : {
typeProtection: {
"balle": "Protège ds balles",
"melee": "Protège en mélée",
"tout": "Tout type de dégats"
@@ -146,7 +146,7 @@ export const HERITIERS_CONFIG = {
"traditionnelle": "Traditionnelle",
"moderne": "Moderne",
"orientale": "Orientale"
},
},
typeContact: {
"contact": "Contact",
"allie": "Allié",
@@ -164,41 +164,50 @@ export const HERITIERS_CONFIG = {
"3": "3",
"4": "4",
},
attaquePlusieursList : {
attaquePlusieursList: {
"0": "0",
"1": "+1",
"2": "+2",
},
attaque2ArmesListe: [
{value: "0", label: "Aucun"},
{value: "-4", label: "Deux armes à 1 main"},
{value: "-2", label: "Deux armes naturelles"},
{value: "-2", label: "Avec spécialisation \"Mauvaise Main\""}
{ value: "0", label: "Aucun" },
{ value: "-4", label: "Deux armes à 1 main" },
{ value: "-2", label: "Deux armes naturelles" },
{ value: "-2", label: "Avec spécialisation \"Mauvaise Main\"" }
],
typeProfil: {
"mineur": "Mineur",
"majeur": "Majeur",
},
bonusMalusContext: [
{value: "-6", label: "-6"},
{value: "-5", label: "-5"},
{value: "-4", label: "-4"},
{value: "-3", label: "-3"},
{value: "-2", label: "-2"},
{value: "-1", label: "-1"},
{value: "0", label: "0"},
{value: "1", label: "+1"},
{value: "2", label: "+2"},
{value: "3", label: "+3"},
{value: "4", label: "+4"},
{value: "5", label: "+5"},
{value: "6", label: "+6"}
bonusMalusContext: [
{ value: "-6", label: "-6" },
{ value: "-5", label: "-5" },
{ value: "-4", label: "-4" },
{ value: "-3", label: "-3" },
{ value: "-2", label: "-2" },
{ value: "-1", label: "-1" },
{ value: "0", label: "0" },
{ value: "1", label: "+1" },
{ value: "2", label: "+2" },
{ value: "3", label: "+3" },
{ value: "4", label: "+4" },
{ value: "5", label: "+5" },
{ value: "6", label: "+6" }
],
listNiveauSort: {
"1" : "1",
"2" : "2",
"3" : "3",
"4" : "4"
"1": "1",
"2": "2",
"3": "3",
"4": "4"
},
listRangSort: {
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7"
},
listNiveau: {
"0": "0",
@@ -213,5 +222,61 @@ export const HERITIERS_CONFIG = {
"9": "9",
"10": "10"
},
rangName: [
"Novice",
"Novice",
"Adepte",
"Maître",
"Grand Maître"
],
rangNameSpecific: {
"Druidisme": {
"Novice": "Eubage",
"Adepte": "Saronide",
"Maître": "Ovate",
"Grand Maître": "Archidruide"
},
"Faëomancie": {
"Novice": "Marmiton",
"Adepte": "Queux",
"Maître": "Chef",
"Grand Maître": "Maître-queux"
},
"Nécromancie": {
"Novice": "Inexpertus",
"Adepte": "Discipulus",
"Maître": "Dominus",
"Grand Maître": "Magister"
},
"Necromancie": {
"Novice": "Inexpertus",
"Adepte": "Discipulus",
"Maître": "Dominus",
"Grand Maître": "Magister"
},
"Magie du Clan": {
"Novice": "Apprenti",
"Adepte": "Disciple",
"Maître": "Maître",
"Grand Maître": "Éminence"
},
"Théurgie": {
"Novice": "Frère",
"Adepte": "Père",
"Maître": "Saint",
"Grand Maître": "Apôtre"
},
"Grand Langage": {
"Novice": "Éveillé",
"Adepte": "Initié",
"Maître": "Sage",
"Grand Maître": "Docteur"
}
},
soufflesMagieDuClan: {
"soufflecombat": "Souffle du Combat",
"soufflemouvement": "Souffle du Mouvement",
"souffleesprit": "Souffle de l'Esprit"
}
}

View File

@@ -4,7 +4,7 @@ import { HeritiersUtility } from "./heritiers-utility.js";
* Extend the basic ItemSheet with some very simple modifications
* @extends {ItemSheet}
*/
export class HeritiersItemSheet extends ItemSheet {
export class HeritiersItemSheet extends foundry.appv1.sheets.ItemSheet {
/** @override */
static get defaultOptions() {
@@ -15,7 +15,7 @@ export class HeritiersItemSheet extends ItemSheet {
dragDrop: [{ dragSelector: null, dropSelector: null }],
width: 620,
height: 550,
tabs: [{navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description"}]
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }]
});
}
@@ -61,9 +61,9 @@ export class HeritiersItemSheet extends ItemSheet {
limited: this.object.limited,
options: this.options,
owner: this.document.isOwner,
config: game.system.lesheritiers.config,
config: game.system.lesheritiers.config,
isArmeMelee: HeritiersUtility.isArmeMelee(this.object),
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }),
mr: (this.object.type == 'specialisation'),
isGM: game.user.isGM,
usageMax: -1
@@ -76,7 +76,7 @@ export class HeritiersItemSheet extends ItemSheet {
this.object.system.pointsusagecourant = formData.usageMax
}
}
if (this.object.type == 'sort' ) {
if (this.object.type == 'sort') {
formData.competencesMagie = HeritiersUtility.getCompetencesMagie()
}
@@ -143,15 +143,15 @@ export class HeritiersItemSheet extends ItemSheet {
html.find('#add-specialite').click(ev => {
let spec = foundry.utils.duplicate(this.object.system.specialites)
spec.push( { name: "Nouvelle Spécialité", id: foundry.utils.randomID(16), used: false })
this.object.update( { 'system.specialites': spec })
spec.push({ name: "Nouvelle Spécialité", id: foundry.utils.randomID(16), used: false })
this.object.update({ 'system.specialites': spec })
})
html.find('.delete-specialite').click(ev => {
const li = $(ev.currentTarget).parents(".specialite-item")
let index = li.data("specialite-index")
let spec = foundry.utils.duplicate(this.object.system.specialites)
spec.splice(index,1)
this.object.update( { 'system.specialites': spec })
spec.splice(index, 1)
this.object.update({ 'system.specialites': spec })
})
html.find('.edit-specialite').change(ev => {
const li = $(ev.currentTarget).parents(".specialite-item")
@@ -159,7 +159,7 @@ export class HeritiersItemSheet extends ItemSheet {
let spec = foundry.utils.duplicate(this.object.system.specialites)
spec[index].name = ev.currentTarget.value
spec[index].id = spec[index].id || foundry.utils.randomID(16)
this.object.update( { 'system.specialites': spec })
this.object.update({ 'system.specialites': spec })
})
html.find('.edit-specialite-description').change(ev => {
const li = $(ev.currentTarget).parents(".specialite-item")
@@ -167,20 +167,20 @@ export class HeritiersItemSheet extends ItemSheet {
let spec = foundry.utils.duplicate(this.object.system.specialites)
spec[index].description = ev.currentTarget.value
spec[index].id = spec[index].id || foundry.utils.randomID(16)
this.object.update( { 'system.specialites': spec })
})
this.object.update({ 'system.specialites': spec })
})
html.find('#add-automation').click(ev => {
let autom = foundry.utils.duplicate(this.object.system.automations)
autom.push( { eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: foundry.utils.randomID(16) })
this.object.update( { 'system.automations': autom })
autom.push({ eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: foundry.utils.randomID(16) })
this.object.update({ 'system.automations': autom })
})
html.find('.delete-automation').click(ev => {
const li = $(ev.currentTarget).parents(".automation-item")
let index = li.data("automation-index")
let autom = foundry.utils.duplicate(this.object.system.automations)
autom.splice(index,1)
this.object.update( { 'system.automations': autom })
autom.splice(index, 1)
this.object.update({ 'system.automations': autom })
})
html.find('.automation-edit-field').change(ev => {
let index = $(ev.currentTarget).data("automation-index")
@@ -188,9 +188,9 @@ export class HeritiersItemSheet extends ItemSheet {
let auto = foundry.utils.duplicate(this.object.system.automations)
auto[index][field] = ev.currentTarget.value
auto[index].id = auto[index].id || foundry.utils.randomID(16)
this.object.update( { 'system.automations': auto })
})
this.object.update({ 'system.automations': auto })
})
// Update Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");

View File

@@ -30,7 +30,7 @@ Hooks.once("init", async function () {
HeritiersUtility.preloadHandlebarsTemplates()
/* -------------------------------------------- */
// Set an initiative formula for the system
// Set an initiative formula for the system
CONFIG.Combat.initiative = {
formula: "1d10",
decimals: 1
@@ -55,12 +55,12 @@ Hooks.once("init", async function () {
/* -------------------------------------------- */
// Register sheet application classes
Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true })
Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true })
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true })
foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true })
Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true })
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true })
HeritiersUtility.init()
@@ -106,13 +106,13 @@ Hooks.once("ready", function () {
user: game.user._id
});
}
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.")
)
)
welcomeMessage();
importDefaultScene();
@@ -131,4 +131,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
}
return true;
});

View File

@@ -6,7 +6,7 @@ export class HeritiersRollDialog extends Dialog {
static async create(actor, rollData) {
let options = { classes: ["HeritiersDialog"], width: 420, height: 'fit-content', 'z-index': 99999 };
let html = await renderTemplate('systems/fvtt-les-heritiers/templates/roll-dialog-generic.html', rollData);
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-les-heritiers/templates/roll-dialog-generic.html', rollData);
return new HeritiersRollDialog(actor, rollData, html, options);
}
@@ -109,7 +109,6 @@ export class HeritiersRollDialog extends Dialog {
activateListeners(html) {
super.activateListeners(html);
var dialog = this;
function onLoad() {
}
$(function () { onLoad(); });
@@ -142,6 +141,6 @@ export class HeritiersRollDialog extends Dialog {
html.find('#attaque-cible').change((event) => {
this.rollData.attaqueCible = String(event.currentTarget.value)
})
}
}

View File

@@ -26,7 +26,7 @@ const __facesAdjacentes = {
10: [8, 4, 3, 7]
},
"d12": {
1:[2, 3, 4, 5, 6],
1: [2, 3, 4, 5, 6],
2: [1, 6, 8, 12, 3],
3: [1, 4, 11, 12, 2],
4: [1, 5, 10, 11, 3],
@@ -48,7 +48,7 @@ export class HeritiersUtility {
/* -------------------------------------------- */
static async init() {
Hooks.on('renderChatLog', (log, html, data) => HeritiersUtility.chatListeners(html))
Hooks.on("getChatLogEntryContext", (html, options) => HeritiersUtility.chatRollMenu(html, options))
/* Unused for Heitiers : Hooks.on("getChatMessageContextOptions", (html, options) => HeritiersUtility.chatRollMenu(html, options))*/
this.rollDataStore = {}
this.defenderStore = {}
@@ -104,7 +104,7 @@ export class HeritiersUtility {
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
this.skills = skills.map(i => i.toObject())
this.competencesMagie = this.skills.filter(s => s.system.profil == "magie")
this.competencesMagie = this.skills.filter(s => s.system.profil == "magie")
game.settings.register("fvtt-les-heritiers", "heritiers-heritage", {
name: "Points d'héritage",
@@ -118,17 +118,30 @@ export class HeritiersUtility {
/* -------------------------------------------- */
static getSDSortValue(niveau) {
if (niveau <= 2) return 12;
if (niveau <= 4) return 14;
if (niveau <= 6) return 16;
if (niveau <= 1) return 12;
if (niveau == 2) return 14;
if (niveau == 3) return 16;
if (niveau > 3) return 18;
return 18;
}
/* -------------------------------------------- */
static getCompetencesMagie() {
return this.competencesMagie
}
/* -------------------------------------------- */
static buildCompetencesMagie() {
let competences = foundry.utils.duplicate(this.getCompetencesMagie())
for (let comp of competences) {
// Calcul du rang
let rang = Math.round(comp.system.niveau / 2);
competences.system.rang = rang;
competences.system.rangGenericName = game.system.lesheritiers.config.rangName[rang];
competences.system.rangSpecificName = game.system.lesheritiers.config.rangNameSpecific[comp.Name][competences.system.rangGenericName];
}
}
/* -------------------------------------------- */
static async loadCompendiumData(compendium) {
const pack = game.packs.get(compendium);
@@ -148,7 +161,7 @@ export class HeritiersUtility {
/* -------------------------------------------- */
static async chatListeners(html) {
html.on("click", '.predilection-reroll', async event => {
$(html).on("click", '.predilection-reroll', async event => {
let predIdx = $(event.currentTarget).data("predilection-index")
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
@@ -158,19 +171,19 @@ export class HeritiersUtility {
rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id))
HeritiersUtility.rollHeritiers(rollData)
})
html.on("click", '.roll-tricherie-2', async event => {
$(html).on("click", '.roll-tricherie-2', async event => {
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "heritiers-roll")
let actor = this.getActorFromRollData(rollData)
if ( await actor.incDecTricherie(-2) ) {
if (await actor.incDecTricherie(-2)) {
rollData.forcedValue = Number($(event.currentTarget).data("dice-value"))
HeritiersUtility.rollHeritiers(rollData)
HeritiersUtility.rollHeritiers(rollData)
}
})
html.on("click", '.roll-chat-degat', async event => {
$(html).on("click", '.roll-chat-degat', async event => {
let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "heritiers-roll")
@@ -189,7 +202,7 @@ export class HeritiersUtility {
'systems/fvtt-les-heritiers/templates/partial-item-nav.html',
'systems/fvtt-les-heritiers/templates/partial-utile-skills.html'
]
return loadTemplates(templatePaths);
return foundry.applications.handlebars.loadTemplates(templatePaths);
}
/* -------------------------------------------- */
@@ -273,7 +286,7 @@ export class HeritiersUtility {
static saveRollData(rollData) {
game.socket.emit("system.fvtt-les-heritiers", {
name: "msg_update_roll", data: rollData
}); // Notify all other clients of the roll
}); // Notify all other clients of the roll
this.updateRollData(rollData);
}
@@ -404,7 +417,7 @@ export class HeritiersUtility {
rollData.finalResult -= 5 + rollValue // Remove also the dice result has it has been added already
}
}
if ( !rollData.forcedValue) {
if (!rollData.forcedValue) {
rollData.adjacentFaces = foundry.utils.duplicate(__facesAdjacentes[rollData.mainDice][rollData.diceValue])
}
}
@@ -465,7 +478,7 @@ export class HeritiersUtility {
this.computeArmeDegats(rollData, actor)
}
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-cc-result.html`, rollData)
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-cc-result.html`, rollData)
}, rollData, "selfroll")
}
/* -------------------------------------------- */
@@ -477,7 +490,7 @@ export class HeritiersUtility {
this.computeMarge(rollData, valeurDefense)
rollData.dureeAssommer = (rollData.marge) ? rollData.marge * 2 : 1
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-assommer-result.html`, rollData)
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-assommer-result.html`, rollData)
}, rollData, "selfroll")
}
/* -------------------------------------------- */
@@ -485,11 +498,11 @@ export class HeritiersUtility {
let actor = this.getActorFromRollData(rollData)
if ( rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) {
if (rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) {
ui.notifications.warn("Pas assez de points d'usage pour ce pouvoir.")
return
}
//rollData.actionImg = "systems/fvtt-les-heritiers/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
if (rollData.caracKey == "pre") rollData.caracKey = "pres"; // Patch tomanage wrong carac key
rollData.carac = foundry.utils.duplicate(actor.system.caracteristiques[rollData.caracKey])
@@ -501,7 +514,7 @@ export class HeritiersUtility {
rollData.diceFormula = "{1d8, 1d10, 1d12}"
} else {
rollData.diceFormula = "1" + rollData.mainDice + "kh1"
}
}
}
let rangValue = 0
@@ -550,7 +563,7 @@ export class HeritiersUtility {
}
}
if ( !rollData.noRoll) {
if (!rollData.noRoll) {
let myRoll = await new Roll(rollData.diceFormula).roll()
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = foundry.utils.duplicate(myRoll)
@@ -567,9 +580,20 @@ export class HeritiersUtility {
if (rollData.mode == "pouvoir" || rollData.mode == "pouvoirpassif") {
actor.incDecPointsUsage(rollData.pouvoir._id, -rollData.pouvoirPointsUsage)
}
// Gestion sort et points d'âme
if (rollData.mode == "sort") {
if (rollData.spendEsprit) {
actor.inDecCarac("esp", -rollData.totalEsprit)
} else {
actor.incDecPointsAme(-rollData.sortPointsAme)
if (rollData.sort.system.competence == "Magie du Clan") {
actor.incDecPV(-2)
}
}
}
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
}, rollData)
// Gestion attaque standard
@@ -607,7 +631,7 @@ export class HeritiersUtility {
this.computeResult(rollData)
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData)
}, rollData)
}
@@ -780,13 +804,13 @@ export class HeritiersUtility {
static chatRollMenu(html, options) {
let canApply = li => canvas.tokens.controlled.length && li.find(".heritiers-roll").length
let canApplyBA = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "heritiers-roll")
let actor = this.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getBonneAventure() > 0)
}
let canApplyPE = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "heritiers-roll")
let actor = this.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getEclat() > 0)
@@ -846,21 +870,56 @@ export class HeritiersUtility {
d.render(true);
}
/************************************************************************************/
static async __create_talents_table() {
let compName = "fvtt-les-heritiers.talents-cellule"
const compData = await HeritiersUtility.loadCompendium(compName)
let talents = compData.map(i => i.toObject())
let htmlTab = "<table border='1'><tbody>";
for (let entryData of talents) {
console.log(entryData)
htmlTab += `<tr><td>@UUID[Compendium.${compName}.${entryData._id}]{${entryData.name}}</td>`
htmlTab += `<td>${entryData.system.description}</td>`;
//htmlTab += `<td>${entryData.system.resumebonus}</td>`;
htmlTab += "</tr>\n";
static loadSort() {
// Create afolder in the item directory if it doesn't exist
if (!game.folders.getName("Magie du Clan")) {
Folder.create({
name: "Magie du Clan",
type: "Item",
color: "#3b1361"
});
}
htmlTab += "</table>";
await JournalEntry.create({ name: 'Liste des Talents de Cellule', content: htmlTab });
// Load the srcdata/sorts-druidisme.json file
return fetch("systems/fvtt-les-heritiers/srcdata/sort_magieduclan.json")
.then(response => response.json())
.then(data => {
console.log("Sorts Magie du Clan loaded:", data);
this.sortDruidisme = data;
// Loop through the spell and create the "sort "item based on the JSON content
data.forEach(spell => {
spell.name = spell.name;
spell.type = "sort";
spell.system = {
niveau: spell.niveau,
competence: spell.competence,
carac1: spell.carac1,
carac2: spell.carac2,
description: spell.description,
ingredients: spell.ingredients,
portee: spell.portee,
duree: spell.duree,
concentration: spell.concentration,
critique: spell.critique,
resistance: spell.resistance,
coutactivation: spell.coutactivation
};
spell.img = "systems/fvtt-les-heritiers/assets/icons/sort.webp";
spell.folder = game.folders.getName("Magie du Clan").id;
// Create the item in the world
Item.create(spell)
.then(item => {
console.log("Sort created:", item);
})
.catch(error => {
console.error("Error creating sort item:", error);
});
})
})
.catch(error => {
console.error("Error loading druidism spells:", error);
return [];
});
}
}

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000167
MANIFEST-000300

View File

@@ -1,8 +1,8 @@
2024/11/17-20:47:41.966228 7f1d08bf96c0 Recovering log #165
2024/11/17-20:47:41.976910 7f1d08bf96c0 Delete type=3 #163
2024/11/17-20:47:41.976994 7f1d08bf96c0 Delete type=0 #165
2024/11/17-20:55:29.667200 7f1d027ff6c0 Level-0 table #170: started
2024/11/17-20:55:29.667241 7f1d027ff6c0 Level-0 table #170: 0 bytes OK
2024/11/17-20:55:29.695843 7f1d027ff6c0 Delete type=0 #168
2024/11/17-20:55:29.814123 7f1d027ff6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2024/11/17-20:55:29.814179 7f1d027ff6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2025/09/15-22:15:24.823326 7f307affd6c0 Recovering log #298
2025/09/15-22:15:24.833041 7f307affd6c0 Delete type=3 #296
2025/09/15-22:15:24.833115 7f307affd6c0 Delete type=0 #298
2025/09/15-22:23:01.584235 7f307a7fc6c0 Level-0 table #303: started
2025/09/15-22:23:01.584266 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
2025/09/15-22:23:01.590949 7f307a7fc6c0 Delete type=0 #301
2025/09/15-22:23:01.597083 7f307a7fc6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.597126 7f307a7fc6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-19:16:31.322926 7f1d093fa6c0 Recovering log #161
2024/11/17-19:16:31.332853 7f1d093fa6c0 Delete type=3 #159
2024/11/17-19:16:31.332928 7f1d093fa6c0 Delete type=0 #161
2024/11/17-20:47:32.626275 7f1d027ff6c0 Level-0 table #166: started
2024/11/17-20:47:32.626301 7f1d027ff6c0 Level-0 table #166: 0 bytes OK
2024/11/17-20:47:32.657840 7f1d027ff6c0 Delete type=0 #164
2024/11/17-20:47:32.759216 7f1d027ff6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2024/11/17-20:47:32.759268 7f1d027ff6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2025/09/15-21:06:27.325495 7f307affd6c0 Recovering log #294
2025/09/15-21:06:27.335836 7f307affd6c0 Delete type=3 #292
2025/09/15-21:06:27.335957 7f307affd6c0 Delete type=0 #294
2025/09/15-21:08:54.705256 7f307a7fc6c0 Level-0 table #299: started
2025/09/15-21:08:54.705333 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
2025/09/15-21:08:54.712270 7f307a7fc6c0 Delete type=0 #297
2025/09/15-21:08:54.731675 7f307a7fc6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2025/09/15-21:08:54.731735 7f307a7fc6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000167
MANIFEST-000300

View File

@@ -1,8 +1,8 @@
2024/11/17-20:47:41.991855 7f1d03fff6c0 Recovering log #165
2024/11/17-20:47:42.001751 7f1d03fff6c0 Delete type=3 #163
2024/11/17-20:47:42.001836 7f1d03fff6c0 Delete type=0 #165
2024/11/17-20:55:29.814290 7f1d027ff6c0 Level-0 table #170: started
2024/11/17-20:55:29.814335 7f1d027ff6c0 Level-0 table #170: 0 bytes OK
2024/11/17-20:55:29.851112 7f1d027ff6c0 Delete type=0 #168
2024/11/17-20:55:29.988613 7f1d027ff6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2024/11/17-20:55:29.988660 7f1d027ff6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2025/09/15-22:15:24.848609 7f307b7fe6c0 Recovering log #298
2025/09/15-22:15:24.859061 7f307b7fe6c0 Delete type=3 #296
2025/09/15-22:15:24.859140 7f307b7fe6c0 Delete type=0 #298
2025/09/15-22:23:01.577999 7f307a7fc6c0 Level-0 table #303: started
2025/09/15-22:23:01.578051 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
2025/09/15-22:23:01.584148 7f307a7fc6c0 Delete type=0 #301
2025/09/15-22:23:01.597073 7f307a7fc6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.597114 7f307a7fc6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-19:16:31.349130 7f1d03fff6c0 Recovering log #161
2024/11/17-19:16:31.359002 7f1d03fff6c0 Delete type=3 #159
2024/11/17-19:16:31.359058 7f1d03fff6c0 Delete type=0 #161
2024/11/17-20:47:32.693837 7f1d027ff6c0 Level-0 table #166: started
2024/11/17-20:47:32.693864 7f1d027ff6c0 Level-0 table #166: 0 bytes OK
2024/11/17-20:47:32.727625 7f1d027ff6c0 Delete type=0 #164
2024/11/17-20:47:32.759243 7f1d027ff6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2024/11/17-20:47:32.759293 7f1d027ff6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2025/09/15-21:06:27.351420 7f307bfff6c0 Recovering log #294
2025/09/15-21:06:27.362201 7f307bfff6c0 Delete type=3 #292
2025/09/15-21:06:27.362258 7f307bfff6c0 Delete type=0 #294
2025/09/15-21:08:54.712395 7f307a7fc6c0 Level-0 table #299: started
2025/09/15-21:08:54.712426 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
2025/09/15-21:08:54.718406 7f307a7fc6c0 Delete type=0 #297
2025/09/15-21:08:54.731696 7f307a7fc6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2025/09/15-21:08:54.731747 7f307a7fc6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000167
MANIFEST-000300

View File

@@ -1,8 +1,8 @@
2024/11/17-20:47:41.953072 7f1d037fe6c0 Recovering log #165
2024/11/17-20:47:41.963084 7f1d037fe6c0 Delete type=3 #163
2024/11/17-20:47:41.963158 7f1d037fe6c0 Delete type=0 #165
2024/11/17-20:55:29.696001 7f1d027ff6c0 Level-0 table #170: started
2024/11/17-20:55:29.696033 7f1d027ff6c0 Level-0 table #170: 0 bytes OK
2024/11/17-20:55:29.736230 7f1d027ff6c0 Delete type=0 #168
2024/11/17-20:55:29.814140 7f1d027ff6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2024/11/17-20:55:29.814191 7f1d027ff6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2025/09/15-22:15:24.798700 7f307bfff6c0 Recovering log #298
2025/09/15-22:15:24.808066 7f307bfff6c0 Delete type=3 #296
2025/09/15-22:15:24.808115 7f307bfff6c0 Delete type=0 #298
2025/09/15-22:23:01.541562 7f307a7fc6c0 Level-0 table #303: started
2025/09/15-22:23:01.541615 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
2025/09/15-22:23:01.547814 7f307a7fc6c0 Delete type=0 #301
2025/09/15-22:23:01.565908 7f307a7fc6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.565949 7f307a7fc6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-19:16:31.310339 7f1d08bf96c0 Recovering log #161
2024/11/17-19:16:31.319876 7f1d08bf96c0 Delete type=3 #159
2024/11/17-19:16:31.319986 7f1d08bf96c0 Delete type=0 #161
2024/11/17-20:47:32.658010 7f1d027ff6c0 Level-0 table #166: started
2024/11/17-20:47:32.658044 7f1d027ff6c0 Level-0 table #166: 0 bytes OK
2024/11/17-20:47:32.693699 7f1d027ff6c0 Delete type=0 #164
2024/11/17-20:47:32.759230 7f1d027ff6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2024/11/17-20:47:32.759275 7f1d027ff6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2025/09/15-21:06:27.300488 7f307bfff6c0 Recovering log #294
2025/09/15-21:06:27.310028 7f307bfff6c0 Delete type=3 #292
2025/09/15-21:06:27.310094 7f307bfff6c0 Delete type=0 #294
2025/09/15-21:08:54.685417 7f307a7fc6c0 Level-0 table #299: started
2025/09/15-21:08:54.685439 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
2025/09/15-21:08:54.692723 7f307a7fc6c0 Delete type=0 #297
2025/09/15-21:08:54.705096 7f307a7fc6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2025/09/15-21:08:54.705139 7f307a7fc6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/avantages/000179.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000167
MANIFEST-000300

View File

@@ -1,8 +1,8 @@
2024/11/17-20:47:41.915911 7f1d08bf96c0 Recovering log #165
2024/11/17-20:47:41.926300 7f1d08bf96c0 Delete type=3 #163
2024/11/17-20:47:41.926363 7f1d08bf96c0 Delete type=0 #165
2024/11/17-20:55:29.595033 7f1d027ff6c0 Level-0 table #170: started
2024/11/17-20:55:29.595055 7f1d027ff6c0 Level-0 table #170: 0 bytes OK
2024/11/17-20:55:29.634810 7f1d027ff6c0 Delete type=0 #168
2024/11/17-20:55:29.667026 7f1d027ff6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2024/11/17-20:55:29.667075 7f1d027ff6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2025/09/15-22:15:24.760919 7f3080dfa6c0 Recovering log #298
2025/09/15-22:15:24.770694 7f3080dfa6c0 Delete type=3 #296
2025/09/15-22:15:24.770767 7f3080dfa6c0 Delete type=0 #298
2025/09/15-22:23:01.521581 7f307a7fc6c0 Level-0 table #303: started
2025/09/15-22:23:01.521642 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
2025/09/15-22:23:01.528012 7f307a7fc6c0 Delete type=0 #301
2025/09/15-22:23:01.534278 7f307a7fc6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.534315 7f307a7fc6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-19:16:31.272923 7f1d093fa6c0 Recovering log #161
2024/11/17-19:16:31.282628 7f1d093fa6c0 Delete type=3 #159
2024/11/17-19:16:31.282691 7f1d093fa6c0 Delete type=0 #161
2024/11/17-20:47:32.572143 7f1d027ff6c0 Level-0 table #166: started
2024/11/17-20:47:32.572175 7f1d027ff6c0 Level-0 table #166: 0 bytes OK
2024/11/17-20:47:32.625976 7f1d027ff6c0 Delete type=0 #164
2024/11/17-20:47:32.626160 7f1d027ff6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2024/11/17-20:47:32.626196 7f1d027ff6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2025/09/15-21:06:27.262631 7f307bfff6c0 Recovering log #294
2025/09/15-21:06:27.272396 7f307bfff6c0 Delete type=3 #292
2025/09/15-21:06:27.272468 7f307bfff6c0 Delete type=0 #294
2025/09/15-21:08:54.666847 7f307a7fc6c0 Level-0 table #299: started
2025/09/15-21:08:54.666873 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
2025/09/15-21:08:54.672959 7f307a7fc6c0 Delete type=0 #297
2025/09/15-21:08:54.679358 7f307a7fc6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2025/09/15-21:08:54.679384 7f307a7fc6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/capacites/000179.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000167
MANIFEST-000300

View File

@@ -1,8 +1,8 @@
2024/11/17-20:47:41.941224 7f1d03fff6c0 Recovering log #165
2024/11/17-20:47:41.950797 7f1d03fff6c0 Delete type=3 #163
2024/11/17-20:47:41.950873 7f1d03fff6c0 Delete type=0 #165
2024/11/17-20:55:29.528760 7f1d027ff6c0 Level-0 table #170: started
2024/11/17-20:55:29.528801 7f1d027ff6c0 Level-0 table #170: 0 bytes OK
2024/11/17-20:55:29.560031 7f1d027ff6c0 Delete type=0 #168
2024/11/17-20:55:29.666990 7f1d027ff6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2024/11/17-20:55:29.667050 7f1d027ff6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2025/09/15-22:15:24.786128 7f307affd6c0 Recovering log #298
2025/09/15-22:15:24.796141 7f307affd6c0 Delete type=3 #296
2025/09/15-22:15:24.796205 7f307affd6c0 Delete type=0 #298
2025/09/15-22:23:01.534415 7f307a7fc6c0 Level-0 table #303: started
2025/09/15-22:23:01.534493 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
2025/09/15-22:23:01.541334 7f307a7fc6c0 Delete type=0 #301
2025/09/15-22:23:01.565894 7f307a7fc6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.565940 7f307a7fc6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-19:16:31.297314 7f1d03fff6c0 Recovering log #161
2024/11/17-19:16:31.308272 7f1d03fff6c0 Delete type=3 #159
2024/11/17-19:16:31.308340 7f1d03fff6c0 Delete type=0 #161
2024/11/17-20:47:32.448494 7f1d027ff6c0 Level-0 table #166: started
2024/11/17-20:47:32.448544 7f1d027ff6c0 Level-0 table #166: 0 bytes OK
2024/11/17-20:47:32.501661 7f1d027ff6c0 Delete type=0 #164
2024/11/17-20:47:32.626129 7f1d027ff6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2024/11/17-20:47:32.626179 7f1d027ff6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2025/09/15-21:06:27.288049 7f307b7fe6c0 Recovering log #294
2025/09/15-21:06:27.298262 7f307b7fe6c0 Delete type=3 #292
2025/09/15-21:06:27.298356 7f307b7fe6c0 Delete type=0 #294
2025/09/15-21:08:54.692841 7f307a7fc6c0 Level-0 table #299: started
2025/09/15-21:08:54.692870 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
2025/09/15-21:08:54.698762 7f307a7fc6c0 Delete type=0 #297
2025/09/15-21:08:54.705111 7f307a7fc6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2025/09/15-21:08:54.705145 7f307a7fc6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000168
MANIFEST-000306

View File

@@ -1,8 +1,8 @@
2024/11/17-20:47:41.902247 7f1d037fe6c0 Recovering log #166
2024/11/17-20:47:41.912542 7f1d037fe6c0 Delete type=3 #164
2024/11/17-20:47:41.912623 7f1d037fe6c0 Delete type=0 #166
2024/11/17-20:55:29.560168 7f1d027ff6c0 Level-0 table #171: started
2024/11/17-20:55:29.560198 7f1d027ff6c0 Level-0 table #171: 0 bytes OK
2024/11/17-20:55:29.594914 7f1d027ff6c0 Delete type=0 #169
2024/11/17-20:55:29.667010 7f1d027ff6c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2024/11/17-20:55:29.667062 7f1d027ff6c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2025/09/15-22:15:24.748857 7f307affd6c0 Recovering log #304
2025/09/15-22:15:24.758566 7f307affd6c0 Delete type=3 #302
2025/09/15-22:15:24.758631 7f307affd6c0 Delete type=0 #304
2025/09/15-22:23:01.528222 7f307a7fc6c0 Level-0 table #309: started
2025/09/15-22:23:01.528266 7f307a7fc6c0 Level-0 table #309: 0 bytes OK
2025/09/15-22:23:01.534172 7f307a7fc6c0 Delete type=0 #307
2025/09/15-22:23:01.534287 7f307a7fc6c0 Manual compaction at level-0 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.534306 7f307a7fc6c0 Manual compaction at level-1 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-19:16:31.259795 7f1d08bf96c0 Recovering log #162
2024/11/17-19:16:31.270586 7f1d08bf96c0 Delete type=3 #160
2024/11/17-19:16:31.270657 7f1d08bf96c0 Delete type=0 #162
2024/11/17-20:47:32.416148 7f1d027ff6c0 Level-0 table #167: started
2024/11/17-20:47:32.416193 7f1d027ff6c0 Level-0 table #167: 0 bytes OK
2024/11/17-20:47:32.448325 7f1d027ff6c0 Delete type=0 #165
2024/11/17-20:47:32.626111 7f1d027ff6c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2024/11/17-20:47:32.626172 7f1d027ff6c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2025/09/15-21:06:27.249709 7f307b7fe6c0 Recovering log #300
2025/09/15-21:06:27.260222 7f307b7fe6c0 Delete type=3 #298
2025/09/15-21:06:27.260307 7f307b7fe6c0 Delete type=0 #300
2025/09/15-21:08:54.660355 7f307a7fc6c0 Level-0 table #305: started
2025/09/15-21:08:54.660389 7f307a7fc6c0 Level-0 table #305: 0 bytes OK
2025/09/15-21:08:54.666754 7f307a7fc6c0 Delete type=0 #303
2025/09/15-21:08:54.679346 7f307a7fc6c0 Manual compaction at level-0 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2025/09/15-21:08:54.679378 7f307a7fc6c0 Manual compaction at level-1 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000167
MANIFEST-000300

View File

@@ -1,8 +1,8 @@
2024/11/17-20:47:41.928516 7f1d093fa6c0 Recovering log #165
2024/11/17-20:47:41.938715 7f1d093fa6c0 Delete type=3 #163
2024/11/17-20:47:41.938787 7f1d093fa6c0 Delete type=0 #165
2024/11/17-20:55:29.634990 7f1d027ff6c0 Level-0 table #170: started
2024/11/17-20:55:29.635028 7f1d027ff6c0 Level-0 table #170: 0 bytes OK
2024/11/17-20:55:29.666837 7f1d027ff6c0 Delete type=0 #168
2024/11/17-20:55:29.667040 7f1d027ff6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2024/11/17-20:55:29.667088 7f1d027ff6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2025/09/15-22:15:24.773117 7f307b7fe6c0 Recovering log #298
2025/09/15-22:15:24.783458 7f307b7fe6c0 Delete type=3 #296
2025/09/15-22:15:24.783520 7f307b7fe6c0 Delete type=0 #298
2025/09/15-22:23:01.559017 7f307a7fc6c0 Level-0 table #303: started
2025/09/15-22:23:01.559048 7f307a7fc6c0 Level-0 table #303: 0 bytes OK
2025/09/15-22:23:01.565802 7f307a7fc6c0 Delete type=0 #301
2025/09/15-22:23:01.565930 7f307a7fc6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.565957 7f307a7fc6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-19:16:31.284731 7f1d037fe6c0 Recovering log #161
2024/11/17-19:16:31.294840 7f1d037fe6c0 Delete type=3 #159
2024/11/17-19:16:31.294933 7f1d037fe6c0 Delete type=0 #161
2024/11/17-20:47:32.501776 7f1d027ff6c0 Level-0 table #166: started
2024/11/17-20:47:32.501803 7f1d027ff6c0 Level-0 table #166: 0 bytes OK
2024/11/17-20:47:32.572001 7f1d027ff6c0 Delete type=0 #164
2024/11/17-20:47:32.626142 7f1d027ff6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2024/11/17-20:47:32.626186 7f1d027ff6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2025/09/15-21:06:27.274645 7f3080dfa6c0 Recovering log #294
2025/09/15-21:06:27.285405 7f3080dfa6c0 Delete type=3 #292
2025/09/15-21:06:27.285486 7f3080dfa6c0 Delete type=0 #294
2025/09/15-21:08:54.679508 7f307a7fc6c0 Level-0 table #299: started
2025/09/15-21:08:54.679542 7f307a7fc6c0 Level-0 table #299: 0 bytes OK
2025/09/15-21:08:54.685322 7f307a7fc6c0 Delete type=0 #297
2025/09/15-21:08:54.705080 7f307a7fc6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2025/09/15-21:08:54.705123 7f307a7fc6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/journaux/000005.ldb Normal file

Binary file not shown.

1
packs/journaux/CURRENT Normal file
View File

@@ -0,0 +1 @@
MANIFEST-000018

8
packs/journaux/LOG Normal file
View File

@@ -0,0 +1,8 @@
2025/09/15-22:15:24.887393 7f3080dfa6c0 Recovering log #16
2025/09/15-22:15:24.897947 7f3080dfa6c0 Delete type=3 #14
2025/09/15-22:15:24.898013 7f3080dfa6c0 Delete type=0 #16
2025/09/15-22:23:01.610372 7f307a7fc6c0 Level-0 table #21: started
2025/09/15-22:23:01.610444 7f307a7fc6c0 Level-0 table #21: 0 bytes OK
2025/09/15-22:23:01.616579 7f307a7fc6c0 Delete type=0 #19
2025/09/15-22:23:01.623474 7f307a7fc6c0 Manual compaction at level-0 from '!journal!QZDy8zwSVh7t4meA' @ 72057594037927935 : 1 .. '!journal.pages!QZDy8zwSVh7t4meA.gdXBDBkPlBjfmTy7' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.623518 7f307a7fc6c0 Manual compaction at level-1 from '!journal!QZDy8zwSVh7t4meA' @ 72057594037927935 : 1 .. '!journal.pages!QZDy8zwSVh7t4meA.gdXBDBkPlBjfmTy7' @ 0 : 0; will stop at (end)

8
packs/journaux/LOG.old Normal file
View File

@@ -0,0 +1,8 @@
2025/09/15-21:06:27.389764 7f307affd6c0 Recovering log #12
2025/09/15-21:06:27.400118 7f307affd6c0 Delete type=3 #10
2025/09/15-21:06:27.400175 7f307affd6c0 Delete type=0 #12
2025/09/15-21:08:54.731831 7f307a7fc6c0 Level-0 table #17: started
2025/09/15-21:08:54.731879 7f307a7fc6c0 Level-0 table #17: 0 bytes OK
2025/09/15-21:08:54.738151 7f307a7fc6c0 Delete type=0 #15
2025/09/15-21:08:54.758915 7f307a7fc6c0 Manual compaction at level-0 from '!journal!QZDy8zwSVh7t4meA' @ 72057594037927935 : 1 .. '!journal.pages!QZDy8zwSVh7t4meA.gdXBDBkPlBjfmTy7' @ 0 : 0; will stop at (end)
2025/09/15-21:08:54.758952 7f307a7fc6c0 Manual compaction at level-1 from '!journal!QZDy8zwSVh7t4meA' @ 72057594037927935 : 1 .. '!journal.pages!QZDy8zwSVh7t4meA.gdXBDBkPlBjfmTy7' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
MANIFEST-000103

0
packs/magie-sorts/LOCK Normal file
View File

15
packs/magie-sorts/LOG Normal file
View File

@@ -0,0 +1,15 @@
2025/09/15-22:15:24.810480 7f307b7fe6c0 Recovering log #101
2025/09/15-22:15:24.820390 7f307b7fe6c0 Delete type=3 #99
2025/09/15-22:15:24.820446 7f307b7fe6c0 Delete type=0 #101
2025/09/15-22:23:01.547894 7f307a7fc6c0 Level-0 table #106: started
2025/09/15-22:23:01.552623 7f307a7fc6c0 Level-0 table #106: 132165 bytes OK
2025/09/15-22:23:01.558854 7f307a7fc6c0 Delete type=0 #104
2025/09/15-22:23:01.565921 7f307a7fc6c0 Manual compaction at level-0 from '!folders!5pCYN0vTiCKOHrXM' @ 72057594037927935 : 1 .. '!items!zbZ88BQkH9ZCYlDK' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.565970 7f307a7fc6c0 Manual compaction at level-1 from '!folders!5pCYN0vTiCKOHrXM' @ 72057594037927935 : 1 .. '!items!zbZ88BQkH9ZCYlDK' @ 0 : 0; will stop at '!items!zbZ88BQkH9ZCYlDK' @ 457 : 0
2025/09/15-22:23:01.565979 7f307a7fc6c0 Compacting 1@1 + 1@2 files
2025/09/15-22:23:01.571458 7f307a7fc6c0 Generated table #107@1: 146 keys, 129863 bytes
2025/09/15-22:23:01.571503 7f307a7fc6c0 Compacted 1@1 + 1@2 files => 129863 bytes
2025/09/15-22:23:01.577463 7f307a7fc6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/09/15-22:23:01.577659 7f307a7fc6c0 Delete type=2 #86
2025/09/15-22:23:01.577865 7f307a7fc6c0 Delete type=2 #106
2025/09/15-22:23:01.597062 7f307a7fc6c0 Manual compaction at level-1 from '!items!zbZ88BQkH9ZCYlDK' @ 457 : 0 .. '!items!zbZ88BQkH9ZCYlDK' @ 0 : 0; will stop at (end)

View File

@@ -0,0 +1,8 @@
2025/09/15-21:06:27.312840 7f3080dfa6c0 Recovering log #97
2025/09/15-21:06:27.322814 7f3080dfa6c0 Delete type=3 #95
2025/09/15-21:06:27.322901 7f3080dfa6c0 Delete type=0 #97
2025/09/15-21:08:54.698842 7f307a7fc6c0 Level-0 table #102: started
2025/09/15-21:08:54.698870 7f307a7fc6c0 Level-0 table #102: 0 bytes OK
2025/09/15-21:08:54.704908 7f307a7fc6c0 Delete type=0 #100
2025/09/15-21:08:54.705132 7f307a7fc6c0 Manual compaction at level-0 from '!folders!1ENmqNfRLUTmKPc6' @ 72057594037927935 : 1 .. '!items!zbZ88BQkH9ZCYlDK' @ 0 : 0; will stop at (end)
2025/09/15-21:08:54.705168 7f307a7fc6c0 Manual compaction at level-1 from '!folders!1ENmqNfRLUTmKPc6' @ 72057594037927935 : 1 .. '!items!zbZ88BQkH9ZCYlDK' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/pouvoirs/000180.ldb Normal file

Binary file not shown.

View File

View File

@@ -1 +1 @@
MANIFEST-000168
MANIFEST-000301

View File

@@ -1,8 +1,8 @@
2024/11/17-20:47:41.979353 7f1d093fa6c0 Recovering log #166
2024/11/17-20:47:41.988865 7f1d093fa6c0 Delete type=3 #164
2024/11/17-20:47:41.988953 7f1d093fa6c0 Delete type=0 #166
2024/11/17-20:55:29.771397 7f1d027ff6c0 Level-0 table #171: started
2024/11/17-20:55:29.771431 7f1d027ff6c0 Level-0 table #171: 0 bytes OK
2024/11/17-20:55:29.813952 7f1d027ff6c0 Delete type=0 #169
2024/11/17-20:55:29.814167 7f1d027ff6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2024/11/17-20:55:29.814200 7f1d027ff6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2025/09/15-22:15:24.835820 7f307bfff6c0 Recovering log #299
2025/09/15-22:15:24.845487 7f307bfff6c0 Delete type=3 #297
2025/09/15-22:15:24.845568 7f307bfff6c0 Delete type=0 #299
2025/09/15-22:23:01.591108 7f307a7fc6c0 Level-0 table #304: started
2025/09/15-22:23:01.591136 7f307a7fc6c0 Level-0 table #304: 0 bytes OK
2025/09/15-22:23:01.596986 7f307a7fc6c0 Delete type=0 #302
2025/09/15-22:23:01.597090 7f307a7fc6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.597120 7f307a7fc6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,8 @@
2024/11/17-19:16:31.335127 7f1d037fe6c0 Recovering log #162
2024/11/17-19:16:31.346078 7f1d037fe6c0 Delete type=3 #160
2024/11/17-19:16:31.346156 7f1d037fe6c0 Delete type=0 #162
2024/11/17-20:47:32.727805 7f1d027ff6c0 Level-0 table #167: started
2024/11/17-20:47:32.727843 7f1d027ff6c0 Level-0 table #167: 0 bytes OK
2024/11/17-20:47:32.759083 7f1d027ff6c0 Delete type=0 #165
2024/11/17-20:47:32.759259 7f1d027ff6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2024/11/17-20:47:32.759283 7f1d027ff6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2025/09/15-21:06:27.338726 7f307b7fe6c0 Recovering log #295
2025/09/15-21:06:27.348432 7f307b7fe6c0 Delete type=3 #293
2025/09/15-21:06:27.348491 7f307b7fe6c0 Delete type=0 #295
2025/09/15-21:08:54.718495 7f307a7fc6c0 Level-0 table #300: started
2025/09/15-21:08:54.718519 7f307a7fc6c0 Level-0 table #300: 0 bytes OK
2025/09/15-21:08:54.724957 7f307a7fc6c0 Delete type=0 #298
2025/09/15-21:08:54.731709 7f307a7fc6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2025/09/15-21:08:54.731758 7f307a7fc6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

0
packs/profils/000300.log Normal file
View File

View File

@@ -1 +1 @@
MANIFEST-000166
MANIFEST-000298

View File

@@ -1,7 +1,7 @@
2024/11/17-20:47:42.004094 7f1d037fe6c0 Recovering log #164
2024/11/17-20:47:42.014786 7f1d037fe6c0 Delete type=3 #162
2024/11/17-20:47:42.014871 7f1d037fe6c0 Delete type=0 #164
2024/11/17-20:55:29.736353 7f1d027ff6c0 Level-0 table #169: started
2024/11/17-20:55:29.736382 7f1d027ff6c0 Level-0 table #169: 0 bytes OK
2024/11/17-20:55:29.771248 7f1d027ff6c0 Delete type=0 #167
2024/11/17-20:55:29.814153 7f1d027ff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2025/09/15-22:15:24.861471 7f3080dfa6c0 Recovering log #296
2025/09/15-22:15:24.871507 7f3080dfa6c0 Delete type=3 #294
2025/09/15-22:15:24.871573 7f3080dfa6c0 Delete type=0 #296
2025/09/15-22:23:01.597208 7f307a7fc6c0 Level-0 table #301: started
2025/09/15-22:23:01.597240 7f307a7fc6c0 Level-0 table #301: 0 bytes OK
2025/09/15-22:23:01.603183 7f307a7fc6c0 Delete type=0 #299
2025/09/15-22:23:01.623429 7f307a7fc6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2024/11/17-19:16:31.360847 7f1d08bf96c0 Recovering log #160
2024/11/17-19:16:31.371569 7f1d08bf96c0 Delete type=3 #158
2024/11/17-19:16:31.371638 7f1d08bf96c0 Delete type=0 #160
2024/11/17-20:47:32.759358 7f1d027ff6c0 Level-0 table #165: started
2024/11/17-20:47:32.759390 7f1d027ff6c0 Level-0 table #165: 0 bytes OK
2024/11/17-20:47:32.795162 7f1d027ff6c0 Delete type=0 #163
2024/11/17-20:47:32.931748 7f1d027ff6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2025/09/15-21:06:27.364429 7f3080dfa6c0 Recovering log #292
2025/09/15-21:06:27.374643 7f3080dfa6c0 Delete type=3 #290
2025/09/15-21:06:27.374720 7f3080dfa6c0 Delete type=0 #292
2025/09/15-21:08:54.725160 7f307a7fc6c0 Level-0 table #297: started
2025/09/15-21:08:54.725200 7f307a7fc6c0 Level-0 table #297: 0 bytes OK
2025/09/15-21:08:54.731505 7f307a7fc6c0 Delete type=0 #295
2025/09/15-21:08:54.731723 7f307a7fc6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/scenes/000148.ldb Normal file

Binary file not shown.

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

View File

@@ -1 +1 @@
MANIFEST-000136
MANIFEST-000269

View File

@@ -1,8 +1,8 @@
2024/11/17-20:47:42.017285 7f1d08bf96c0 Recovering log #134
2024/11/17-20:47:42.027032 7f1d08bf96c0 Delete type=3 #132
2024/11/17-20:47:42.027111 7f1d08bf96c0 Delete type=0 #134
2024/11/17-20:55:29.950168 7f1d027ff6c0 Level-0 table #139: started
2024/11/17-20:55:29.950201 7f1d027ff6c0 Level-0 table #139: 0 bytes OK
2024/11/17-20:55:29.988480 7f1d027ff6c0 Delete type=0 #137
2024/11/17-20:55:29.988652 7f1d027ff6c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
2024/11/17-20:55:30.050927 7f1d027ff6c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
2025/09/15-22:15:24.873861 7f307affd6c0 Recovering log #267
2025/09/15-22:15:24.883924 7f307affd6c0 Delete type=3 #265
2025/09/15-22:15:24.884000 7f307affd6c0 Delete type=0 #267
2025/09/15-22:23:01.616718 7f307a7fc6c0 Level-0 table #272: started
2025/09/15-22:23:01.616761 7f307a7fc6c0 Level-0 table #272: 0 bytes OK
2025/09/15-22:23:01.623192 7f307a7fc6c0 Delete type=0 #270
2025/09/15-22:23:01.623491 7f307a7fc6c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
2025/09/15-22:23:01.623509 7f307a7fc6c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)

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