Compare commits

..

15 Commits

Author SHA1 Message Date
uberwald 939cfb1e86 Update compendiums 2025-09-15 22:23:25 +02:00
uberwald 5f5e0e2a8c Update magie 2025-09-15 21:10:46 +02:00
uberwald c993a9a5b1 Update magie 2025-09-15 21:09:09 +02:00
uberwald cc7de0e53c Amelioration diverses pour la magie 2025-09-14 20:12:02 +02:00
uberwald 4d41986c12 Ajout pour la magie 2025-09-13 00:24:58 +02:00
uberwald d04731f475 Ajout pour la magie 2025-09-13 00:24:08 +02:00
uberwald 44a641a0ca Update arts obscurs 2025-08-13 09:39:04 +02:00
uberwald 1ad022d193 Update arts obscurs 2025-08-13 09:38:35 +02:00
uberwald 1c7cf343b1 Update arts obscurs 2025-08-12 23:24:50 +02:00
uberwald d4b00e3508 Update arts obscurs 2025-08-12 23:20:51 +02:00
uberwald adc912e6cd Ajout/upgrade des arts obscurs 2025-08-11 22:53:23 +02:00
uberwald 51a457ebf6 Foundry v13 migration 2025-05-02 08:34:22 +02:00
uberwald 2e9c558027 Ajout arts obscurs 2024-11-17 22:46:52 +01:00
uberwald bcd0758328 Ajout arts obscurs 2024-11-17 22:45:48 +01:00
uberwald 2b680a203f Fix jet avec prestance 2024-08-11 14:40:41 +02:00
124 changed files with 4459 additions and 2017 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

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

+2 -1
View File
@@ -17,7 +17,8 @@
"fee": "Fée",
"pouvoir": "Pouvoir",
"profil": "Profil",
"protection": "Protection"
"protection": "Protection",
"sort": "Sort"
}
}
}
+36 -21
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() {
@@ -38,14 +38,15 @@ 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(),
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
@@ -57,12 +58,13 @@ export class HeritiersActorSheet extends ActorSheet {
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,
editScore: this.options.editScore,
@@ -125,7 +127,7 @@ export class HeritiersActorSheet extends ActorSheet {
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
@@ -135,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
@@ -153,7 +155,7 @@ export class HeritiersActorSheet extends ActorSheet {
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) => {
@@ -174,27 +176,32 @@ export class HeritiersActorSheet extends ActorSheet {
})
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")
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)
})
@@ -209,6 +216,14 @@ 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 })
})
@@ -218,7 +233,7 @@ export class HeritiersActorSheet extends ActorSheet {
});
html.find('.item-equip').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.equipItem( li.data("item-id") );
this.actor.equipItem(li.data("item-id"));
this.render(true);
});
+227 -8
View File
@@ -41,7 +41,7 @@ export class HeritiersActor extends Actor {
const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
data.items = []
for (let skill of skills) {
if (skill.system.categorie == "utile") {
if (skill.system.categorie == "utile" && skill.system.profil != "magie") {
data.items.push(skill.toObject())
}
}
@@ -146,6 +146,85 @@ export class HeritiersActor extends Actor {
HeritiersUtility.sortArrayObjectsByName(pouvoirs)
return pouvoirs
}
getSorts() {
return this.getItemSorted(["sort"])
}
getCompetencesMagie() {
let comp = []
for (let item of this.items) {
if (item.type == "competence" && item.system.profil == "magie") {
let itemObj = foundry.utils.duplicate(item)
comp.push(itemObj)
}
}
HeritiersUtility.sortArrayObjectsByName(comp)
return comp
}
prepareMagie() {
let magieList = []
for (let item of this.items) {
if (item.type == "competence" && item.system.profil == "magie") {
let magie = {}
magie.name = item.name
magie.competence = foundry.utils.duplicate(item)
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)
}
}
return magieList
}
/* -------------------------------------------- */
getSkills() {
@@ -171,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 = {}
@@ -192,6 +293,7 @@ export class HeritiersActor extends Actor {
}
return Object.fromEntries(Object.entries(comp).sort())
}
/* -------------------------------------------- */
organizeContacts() {
let contactList = {}
@@ -258,12 +360,37 @@ export class HeritiersActor extends Actor {
/* -------------------------------------------- */
async prepareData() {
super.prepareData();
let pvMax = (this.system.caracteristiques.con.rang * 3) + 9 + this.system.pv.mod
if (this.system.pv.max != pvMax) {
this.update({ 'system.pv.max': pvMax })
}
if (this.system.biodata.magie || this.type == "pnj") {
let pointsAmes = this.system.caracteristiques.esp.rang + this.system.caracteristiques.san.rang + this.getMaxRangMagie()
if (this.system.magie.pointsame.max != pointsAmes) {
this.update({ 'system.magie.pointsame.max': pointsAmes })
}
}
super.prepareData();
}
/* -------------------------------------------- */
getMaxRangMagie() {
let niv = 0
let bestMagie
for (let comp of this.items) {
if (comp.type == "competence" && comp.system.profil == "magie") {
if (comp.system.niveau > niv) {
bestMagie = comp
niv = comp.system.niveau
}
}
}
if (bestMagie) {
return Math.round(bestMagie.system.niveau / 2)
}
return 0
}
/* -------------------------------------------- */
@@ -397,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)
@@ -627,6 +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())
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(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)
@@ -727,7 +929,7 @@ export class HeritiersActor extends Actor {
callback: () => {
rollData.pouvoirPointsUsage = 1;
HeritiersUtility.rollHeritiers(rollData);
}
}
},
two: {
icon: '<i class="fas fa-check"></i>',
@@ -735,7 +937,7 @@ export class HeritiersActor extends Actor {
callback: () => {
rollData.pouvoirPointsUsage = 2;
HeritiersUtility.rollHeritiers(rollData);
}
}
},
three: {
icon: '<i class="fas fa-check"></i>',
@@ -743,7 +945,7 @@ export class HeritiersActor extends Actor {
callback: () => {
rollData.pouvoirPointsUsage = 3;
HeritiersUtility.rollHeritiers(rollData);
}
}
},
four: {
icon: '<i class="fas fa-check"></i>',
@@ -751,13 +953,13 @@ export class HeritiersActor extends Actor {
callback: () => {
rollData.pouvoirPointsUsage = 4;
HeritiersUtility.rollHeritiers(rollData);
}
}
},
close: {
icon: '<i class="fas fa-times"></i>',
label: "Annuler",
callback: () => {
}
}
}
},
default: "one",
@@ -788,7 +990,7 @@ export class HeritiersActor extends Actor {
if (pouvoir.system.istest && !pouvoir.system.carac) {
ui.notifications.warn("Le pouvoir actif " + pouvoir.name + " n'a pas de caractéristique associée")
}
if ( pouvoir.system.istest) {
if (pouvoir.system.istest) {
rollData.carac = foundry.utils.duplicate(this.system.caracteristiques[pouvoir.system.carac])
rollData.caracKey = pouvoir.system.carac
} else {
@@ -804,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)
+102 -30
View File
@@ -12,7 +12,7 @@ export const HERITIERS_CONFIG = {
"san": "Sang-Froid"
},
competenceCategorie : {
competenceCategorie: {
"utile": "Utile",
"futile": "Futile"
},
@@ -24,13 +24,14 @@ export const HERITIERS_CONFIG = {
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"}
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",
@@ -52,7 +53,7 @@ export const HERITIERS_CONFIG = {
},
statutMasque: {
"masque": "Masqué",
"demasque":"Démasqué"
"demasque": "Démasqué"
},
niveauPouvoir: {
"normal": "Normal",
@@ -100,7 +101,7 @@ export const HERITIERS_CONFIG = {
"tete": "Tête/Coeur"
},
categorieArme : {
categorieArme: {
"trait": "Arme de trait",
"poing": "Arme de poing",
"epaule": "Arme d'épaule",
@@ -130,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"
@@ -163,36 +164,51 @@ 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"}
{ 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"
},
listRangSort: {
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7"
},
listNiveau: {
"0": "0",
"1": "1",
@@ -206,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"
}
}
+18 -14
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" }]
});
}
@@ -63,7 +63,7 @@ export class HeritiersItemSheet extends ItemSheet {
owner: this.document.isOwner,
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,6 +76,10 @@ export class HeritiersItemSheet extends ItemSheet {
this.object.system.pointsusagecourant = formData.usageMax
}
}
if (this.object.type == 'sort') {
formData.competencesMagie = HeritiersUtility.getCompetencesMagie()
}
//this.options.editable = !(this.object.origin == "embeddedItem");
console.log("ITEM DATA", formData, this);
@@ -139,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")
@@ -155,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")
@@ -163,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")
@@ -184,7 +188,7 @@ 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
+1
View File
@@ -18,6 +18,7 @@ export const defaultItemImg = {
fee: "systems/fvtt-les-heritiers/assets/icons/faery_type.webp",
profil: "systems/fvtt-les-heritiers/assets/icons/profil.webp",
equipement: "systems/fvtt-les-heritiers/assets/icons/equipement.webp",
sort: "systems/fvtt-les-heritiers/assets/icons/sort.webp",
}
/**
+7 -8
View File
@@ -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()
@@ -107,10 +107,10 @@ Hooks.once("ready", function () {
});
}
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter => {
console.log("ClassCounter loaded", moduleCounter)
moduleCounter.ClassCounter.registerUsageCount()
}).catch(err=>
}).catch(err =>
console.log("No stats available, giving up.")
)
welcomeMessage();
@@ -131,4 +131,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
}
return true;
});
+1 -2
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(); });
+110 -35
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,6 +104,8 @@ 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")
game.settings.register("fvtt-les-heritiers", "heritiers-heritage", {
name: "Points d'héritage",
hint: "Points d'héritage du groupe",
@@ -114,6 +116,32 @@ export class HeritiersUtility {
})
}
/* -------------------------------------------- */
static getSDSortValue(niveau) {
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);
@@ -133,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)
@@ -144,18 +172,18 @@ export class HeritiersUtility {
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)
}
})
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")
@@ -174,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);
}
/* -------------------------------------------- */
@@ -389,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])
}
}
@@ -450,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")
}
/* -------------------------------------------- */
@@ -462,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")
}
/* -------------------------------------------- */
@@ -470,12 +498,13 @@ 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])
if (rollData.forcedValue) {
@@ -534,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)
@@ -551,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
@@ -591,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)
}
@@ -764,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)
@@ -805,11 +845,11 @@ export class HeritiersUtility {
/* -------------------------------------------- */
static async confirmDelete(actorSheet, li) {
let itemId = li.data("item-id");
let msgTxt = "<p>Are you sure to remove this Item ?";
let msgTxt = "<p>Certain de supprimer cet item ?";
let buttons = {
delete: {
icon: '<i class="fas fa-check"></i>',
label: "Yes, remove it",
label: "Oui !",
callback: () => {
actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
li.slideUp(200, () => actorSheet.render(false));
@@ -817,12 +857,12 @@ export class HeritiersUtility {
},
cancel: {
icon: '<i class="fas fa-times"></i>',
label: "Cancel"
label: "Non !"
}
}
msgTxt += "</p>";
let d = new Dialog({
title: "Confirm removal",
title: "Confirmer la suppression",
content: msgTxt,
buttons: buttons,
default: "cancel"
@@ -830,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.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000139
MANIFEST-000300
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:26:48.905986 7f61a0c006c0 Recovering log #137
2024/07/30-09:26:48.916644 7f61a0c006c0 Delete type=3 #135
2024/07/30-09:26:48.916787 7f61a0c006c0 Delete type=0 #137
2024/07/30-09:29:38.623829 7f619e8006c0 Level-0 table #142: started
2024/07/30-09:29:38.623893 7f619e8006c0 Level-0 table #142: 0 bytes OK
2024/07/30-09:29:38.631639 7f619e8006c0 Delete type=0 #140
2024/07/30-09:29:38.640831 7f619e8006c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2024/07/30-09:29:38.640969 7f619e8006c0 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:10:55.068008 7f61a0c006c0 Recovering log #133
2024/07/30-09:10:55.078873 7f61a0c006c0 Delete type=3 #131
2024/07/30-09:10:55.079032 7f61a0c006c0 Delete type=0 #133
2024/07/30-09:23:03.189572 7f619e8006c0 Level-0 table #138: started
2024/07/30-09:23:03.189616 7f619e8006c0 Level-0 table #138: 0 bytes OK
2024/07/30-09:23:03.237443 7f619e8006c0 Delete type=0 #136
2024/07/30-09:23:03.372498 7f619e8006c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
2024/07/30-09:23:03.372559 7f619e8006c0 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.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000139
MANIFEST-000300
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:26:48.936799 7f61a16006c0 Recovering log #137
2024/07/30-09:26:48.947878 7f61a16006c0 Delete type=3 #135
2024/07/30-09:26:48.947994 7f61a16006c0 Delete type=0 #137
2024/07/30-09:29:38.641116 7f619e8006c0 Level-0 table #142: started
2024/07/30-09:29:38.641202 7f619e8006c0 Level-0 table #142: 0 bytes OK
2024/07/30-09:29:38.648854 7f619e8006c0 Delete type=0 #140
2024/07/30-09:29:38.680189 7f619e8006c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2024/07/30-09:29:38.680301 7f619e8006c0 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:10:55.099640 7f61a02006c0 Recovering log #133
2024/07/30-09:10:55.110842 7f61a02006c0 Delete type=3 #131
2024/07/30-09:10:55.110942 7f61a02006c0 Delete type=0 #133
2024/07/30-09:23:03.335864 7f619e8006c0 Level-0 table #138: started
2024/07/30-09:23:03.335940 7f619e8006c0 Level-0 table #138: 0 bytes OK
2024/07/30-09:23:03.372305 7f619e8006c0 Delete type=0 #136
2024/07/30-09:23:03.372546 7f619e8006c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
2024/07/30-09:23:03.446232 7f619e8006c0 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.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000139
MANIFEST-000300
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:26:48.890651 7f619f8006c0 Recovering log #137
2024/07/30-09:26:48.901439 7f619f8006c0 Delete type=3 #135
2024/07/30-09:26:48.901535 7f619f8006c0 Delete type=0 #137
2024/07/30-09:29:38.607037 7f619e8006c0 Level-0 table #142: started
2024/07/30-09:29:38.607124 7f619e8006c0 Level-0 table #142: 0 bytes OK
2024/07/30-09:29:38.614640 7f619e8006c0 Delete type=0 #140
2024/07/30-09:29:38.640778 7f619e8006c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2024/07/30-09:29:38.640904 7f619e8006c0 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:10:55.051639 7f61a16006c0 Recovering log #133
2024/07/30-09:10:55.062824 7f61a16006c0 Delete type=3 #131
2024/07/30-09:10:55.062987 7f61a16006c0 Delete type=0 #133
2024/07/30-09:23:03.237667 7f619e8006c0 Level-0 table #138: started
2024/07/30-09:23:03.237719 7f619e8006c0 Level-0 table #138: 0 bytes OK
2024/07/30-09:23:03.272266 7f619e8006c0 Delete type=0 #136
2024/07/30-09:23:03.372517 7f619e8006c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
2024/07/30-09:23:03.372572 7f619e8006c0 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.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000139
MANIFEST-000300
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:26:48.846369 7f61a0c006c0 Recovering log #137
2024/07/30-09:26:48.856642 7f61a0c006c0 Delete type=3 #135
2024/07/30-09:26:48.856767 7f61a0c006c0 Delete type=0 #137
2024/07/30-09:29:38.585757 7f619e8006c0 Level-0 table #142: started
2024/07/30-09:29:38.585819 7f619e8006c0 Level-0 table #142: 0 bytes OK
2024/07/30-09:29:38.592691 7f619e8006c0 Delete type=0 #140
2024/07/30-09:29:38.606792 7f619e8006c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2024/07/30-09:29:38.606883 7f619e8006c0 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:10:55.006701 7f61a0c006c0 Recovering log #133
2024/07/30-09:10:55.017640 7f61a0c006c0 Delete type=3 #131
2024/07/30-09:10:55.017731 7f61a0c006c0 Delete type=0 #133
2024/07/30-09:23:03.068943 7f619e8006c0 Level-0 table #138: started
2024/07/30-09:23:03.068981 7f619e8006c0 Level-0 table #138: 0 bytes OK
2024/07/30-09:23:03.107862 7f619e8006c0 Delete type=0 #136
2024/07/30-09:23:03.189274 7f619e8006c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
2024/07/30-09:23:03.189350 7f619e8006c0 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.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000139
MANIFEST-000300
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:26:48.875799 7f61a16006c0 Recovering log #137
2024/07/30-09:26:48.886968 7f61a16006c0 Delete type=3 #135
2024/07/30-09:26:48.887068 7f61a16006c0 Delete type=0 #137
2024/07/30-09:29:38.599930 7f619e8006c0 Level-0 table #142: started
2024/07/30-09:29:38.599993 7f619e8006c0 Level-0 table #142: 0 bytes OK
2024/07/30-09:29:38.606481 7f619e8006c0 Delete type=0 #140
2024/07/30-09:29:38.606839 7f619e8006c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2024/07/30-09:29:38.606928 7f619e8006c0 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:10:55.037123 7f61a02006c0 Recovering log #133
2024/07/30-09:10:55.047779 7f61a02006c0 Delete type=3 #131
2024/07/30-09:10:55.047946 7f61a02006c0 Delete type=0 #133
2024/07/30-09:23:03.151197 7f619e8006c0 Level-0 table #138: started
2024/07/30-09:23:03.151237 7f619e8006c0 Level-0 table #138: 0 bytes OK
2024/07/30-09:23:03.188887 7f619e8006c0 Delete type=0 #136
2024/07/30-09:23:03.189323 7f619e8006c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
2024/07/30-09:23:03.189365 7f619e8006c0 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.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000139
MANIFEST-000306
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:26:48.831897 7f619f8006c0 Recovering log #137
2024/07/30-09:26:48.842926 7f619f8006c0 Delete type=3 #135
2024/07/30-09:26:48.843016 7f619f8006c0 Delete type=0 #137
2024/07/30-09:29:38.578835 7f619e8006c0 Level-0 table #142: started
2024/07/30-09:29:38.578921 7f619e8006c0 Level-0 table #142: 0 bytes OK
2024/07/30-09:29:38.585476 7f619e8006c0 Delete type=0 #140
2024/07/30-09:29:38.606759 7f619e8006c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2024/07/30-09:29:38.606861 7f619e8006c0 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:10:54.992903 7f61a16006c0 Recovering log #133
2024/07/30-09:10:55.003212 7f61a16006c0 Delete type=3 #131
2024/07/30-09:10:55.003337 7f61a16006c0 Delete type=0 #133
2024/07/30-09:23:03.108114 7f619e8006c0 Level-0 table #138: started
2024/07/30-09:23:03.108172 7f619e8006c0 Level-0 table #138: 0 bytes OK
2024/07/30-09:23:03.151019 7f619e8006c0 Delete type=0 #136
2024/07/30-09:23:03.189301 7f619e8006c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
2024/07/30-09:23:03.189378 7f619e8006c0 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.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000139
MANIFEST-000300
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:26:48.860691 7f61a02006c0 Recovering log #137
2024/07/30-09:26:48.871716 7f61a02006c0 Delete type=3 #135
2024/07/30-09:26:48.871819 7f61a02006c0 Delete type=0 #137
2024/07/30-09:29:38.592995 7f619e8006c0 Level-0 table #142: started
2024/07/30-09:29:38.593062 7f619e8006c0 Level-0 table #142: 0 bytes OK
2024/07/30-09:29:38.599648 7f619e8006c0 Delete type=0 #140
2024/07/30-09:29:38.606816 7f619e8006c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2024/07/30-09:29:38.606905 7f619e8006c0 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)
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:10:55.021975 7f619f8006c0 Recovering log #133
2024/07/30-09:10:55.033025 7f619f8006c0 Delete type=3 #131
2024/07/30-09:10:55.033200 7f619f8006c0 Delete type=0 #133
2024/07/30-09:23:03.033848 7f619e8006c0 Level-0 table #138: started
2024/07/30-09:23:03.033938 7f619e8006c0 Level-0 table #138: 0 bytes OK
2024/07/30-09:23:03.068751 7f619e8006c0 Delete type=0 #136
2024/07/30-09:23:03.189232 7f619e8006c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
2024/07/30-09:23:03.189337 7f619e8006c0 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.
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
MANIFEST-000018
+8
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
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.
+1
View File
@@ -0,0 +1 @@
MANIFEST-000103
View File
+15
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)
+8
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.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000140
MANIFEST-000301
+8 -8
View File
@@ -1,8 +1,8 @@
2024/07/30-09:26:48.920872 7f61a02006c0 Recovering log #137
2024/07/30-09:26:48.931697 7f61a02006c0 Delete type=3 #135
2024/07/30-09:26:48.931863 7f61a02006c0 Delete type=0 #137
2024/07/30-09:29:38.614872 7f619e8006c0 Level-0 table #143: started
2024/07/30-09:29:38.614928 7f619e8006c0 Level-0 table #143: 0 bytes OK
2024/07/30-09:29:38.623464 7f619e8006c0 Delete type=0 #141
2024/07/30-09:29:38.640807 7f619e8006c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2024/07/30-09:29:38.640941 7f619e8006c0 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)
+8 -15
View File
@@ -1,15 +1,8 @@
2024/07/30-09:10:55.082770 7f619f8006c0 Recovering log #133
2024/07/30-09:10:55.094232 7f619f8006c0 Delete type=3 #131
2024/07/30-09:10:55.094379 7f619f8006c0 Delete type=0 #133
2024/07/30-09:23:03.272516 7f619e8006c0 Level-0 table #138: started
2024/07/30-09:23:03.296681 7f619e8006c0 Level-0 table #138: 278828 bytes OK
2024/07/30-09:23:03.335294 7f619e8006c0 Delete type=0 #136
2024/07/30-09:23:03.372532 7f619e8006c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
2024/07/30-09:23:03.372589 7f619e8006c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at '!items!zON0h5SjFyANjPnA' @ 285 : 1
2024/07/30-09:23:03.372598 7f619e8006c0 Compacting 1@1 + 1@2 files
2024/07/30-09:23:03.396725 7f619e8006c0 Generated table #139@1: 135 keys, 278828 bytes
2024/07/30-09:23:03.396780 7f619e8006c0 Compacted 1@1 + 1@2 files => 278828 bytes
2024/07/30-09:23:03.445194 7f619e8006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/07/30-09:23:03.445387 7f619e8006c0 Delete type=2 #106
2024/07/30-09:23:03.445870 7f619e8006c0 Delete type=2 #138
2024/07/30-09:23:03.521388 7f619e8006c0 Manual compaction at level-1 from '!items!zON0h5SjFyANjPnA' @ 285 : 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.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000138
MANIFEST-000298
+7 -7
View File
@@ -1,7 +1,7 @@
2024/07/30-09:26:48.951614 7f619f8006c0 Recovering log #136
2024/07/30-09:26:48.962377 7f619f8006c0 Delete type=3 #134
2024/07/30-09:26:48.962496 7f619f8006c0 Delete type=0 #136
2024/07/30-09:29:38.631861 7f619e8006c0 Level-0 table #141: started
2024/07/30-09:29:38.631900 7f619e8006c0 Level-0 table #141: 0 bytes OK
2024/07/30-09:29:38.640515 7f619e8006c0 Delete type=0 #139
2024/07/30-09:29:38.640860 7f619e8006c0 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)
+7 -7
View File
@@ -1,7 +1,7 @@
2024/07/30-09:10:55.114542 7f61a16006c0 Recovering log #132
2024/07/30-09:10:55.125060 7f61a16006c0 Delete type=3 #130
2024/07/30-09:10:55.125159 7f61a16006c0 Delete type=0 #132
2024/07/30-09:23:03.446260 7f619e8006c0 Level-0 table #137: started
2024/07/30-09:23:03.446314 7f619e8006c0 Level-0 table #137: 0 bytes OK
2024/07/30-09:23:03.482153 7f619e8006c0 Delete type=0 #135
2024/07/30-09:23:03.558536 7f619e8006c0 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.
Binary file not shown.

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