Passage en v12 + preparation module officiel BoL

This commit is contained in:
LeRatierBretonnien 2024-04-26 18:00:56 +02:00
parent ae43c7c920
commit 7ed9265a26
190 changed files with 767 additions and 1743 deletions

View File

@ -168,6 +168,9 @@
"BOL.ui.initMalus": "Init malus", "BOL.ui.initMalus": "Init malus",
"BOL.ui.isspecial": "Spécial ?", "BOL.ui.isspecial": "Spécial ?",
"BOL.ui.createEquipment": "Create Equipment", "BOL.ui.createEquipment": "Create Equipment",
"BOL.ui.creature": "Creature",
"BOL.ui.undead": "Undead",
"BOL.ui.daemon": "Daemon",
"BOL.featureCategory.origins": "Origins", "BOL.featureCategory.origins": "Origins",
"BOL.featureCategory.races": "Races", "BOL.featureCategory.races": "Races",

View File

@ -2,6 +2,7 @@
"TYPES": { "TYPES": {
"Actor": { "Actor": {
"character": "Personnage", "character": "Personnage",
"encounter": "PNJ",
"npc": "PNJ", "npc": "PNJ",
"vehicle": "Véhicule" "vehicle": "Véhicule"
}, },
@ -207,7 +208,9 @@
"BOL.ui.crewDamage": "D.équipage", "BOL.ui.crewDamage": "D.équipage",
"BOL.ui.fireDamage": "Feu ?", "BOL.ui.fireDamage": "Feu ?",
"BOL.ui.weaponbonus": "Cette arme bénéficie déja d'un Dé de Bonus (Arme Favorite prise en compte, par exemple)", "BOL.ui.weaponbonus": "Cette arme bénéficie déja d'un Dé de Bonus (Arme Favorite prise en compte, par exemple)",
"BOL.ui.creature": "Creature", "BOL.ui.creature": "Créature",
"BOL.ui.undead": "Mort vivant",
"BOL.ui.daemon": "Démon",
"BOL.ui.rabble": "Piétaille", "BOL.ui.rabble": "Piétaille",
"BOL.ui.tough": "Coriace", "BOL.ui.tough": "Coriace",
"BOL.ui.villain": "Rival", "BOL.ui.villain": "Rival",
@ -620,5 +623,8 @@
"BOL.settings.defaultLogoActorSheetPath" : "Chemin du logo des fiches de perso", "BOL.settings.defaultLogoActorSheetPath" : "Chemin du logo des fiches de perso",
"BOL.settings.defaultLogoPathActorSheetTooltip": "Vous pouvez changer le logo BoL des fiches de perso, pour jouer dans un autre univers (idéalement 346 x 200, défaut : /systems/bol/ui/logo.webp)", "BOL.settings.defaultLogoPathActorSheetTooltip": "Vous pouvez changer le logo BoL des fiches de perso, pour jouer dans un autre univers (idéalement 346 x 200, défaut : /systems/bol/ui/logo.webp)",
"BOL.settings.defaultLogoTopLeftPath" : "Chemin du logo haut gauche", "BOL.settings.defaultLogoTopLeftPath" : "Chemin du logo haut gauche",
"BOL.settings.defaultLogoTopLeftPathTooltip": "Vous pouvez changer le logo BoL en haut à gauche de chaque écran (idéalement 718 x 416, défaut : /systems/bol/ui/logo2.webp)" "BOL.settings.defaultLogoTopLeftPathTooltip": "Vous pouvez changer le logo BoL en haut à gauche de chaque écran (idéalement 718 x 416, défaut : /systems/bol/ui/logo2.webp)",
"EFFECT.StatusProne": "A terre",
"EFFECT.StatusDead": "Mort"
} }

View File

@ -9,7 +9,7 @@ export class BoLActorSheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["bol", "sheet", "actor"], classes: ["bol", "sheet", "actor"],
template: "systems/bol/templates/actor/actor-sheet.hbs", template: "systems/bol/templates/actor/actor-sheet.hbs",
width: 860, width: 860,
@ -122,8 +122,8 @@ export class BoLActorSheet extends ActorSheet {
/** @override */ /** @override */
async getData(options) { async getData(options) {
const data = super.getData(options) const data = super.getData(options)
const actorData = duplicate(data) const actorData = foundry.utils.duplicate(data)
let formData = duplicate(data) let formData = foundry.utils.duplicate(data)
formData.config = game.bol.config formData.config = game.bol.config
formData.data = actorData formData.data = actorData
@ -160,6 +160,7 @@ export class BoLActorSheet extends ActorSheet {
formData.bougette = this.actor.getBougette() formData.bougette = this.actor.getBougette()
formData.charType = this.actor.getCharType() formData.charType = this.actor.getCharType()
formData.villainy = this.actor.getVillainy() formData.villainy = this.actor.getVillainy()
formData.isUndead = this.actor.isUndead()
formData.biography = await TextEditor.enrichHTML(this.object.system.details?.biography || "", { async: true }) formData.biography = await TextEditor.enrichHTML(this.object.system.details?.biography || "", { async: true })
formData.notes = await TextEditor.enrichHTML(this.object.system.details.notes || "", { async: true }) formData.notes = await TextEditor.enrichHTML(this.object.system.details.notes || "", { async: true })
formData.isSorcerer = this.actor.isSorcerer() formData.isSorcerer = this.actor.isSorcerer()
@ -187,7 +188,7 @@ export class BoLActorSheet extends ActorSheet {
// Get the type of item to create. // Get the type of item to create.
const type = header.dataset.type; const type = header.dataset.type;
// Grab any data associated with this control. // Grab any data associated with this control.
const data = duplicate(header.dataset); const data = foundry.utils.duplicate(header.dataset);
// Initialize a default name. // Initialize a default name.
const name = `New ${type.capitalize()}`; const name = `New ${type.capitalize()}`;
// Prepare the item object. // Prepare the item object.

View File

@ -38,10 +38,7 @@ export class BoLActor extends Actor {
if (this.type === 'character') { if (this.type === 'character') {
return true return true
} }
if (this.type === 'encounter' && this.chartype == "adversary") { return (this.type === 'encounter' && this.chartype == "adversary")
return true
}
return false
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -54,10 +51,10 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getVillainy() { getVillainy() {
if (this.type === 'encounter' && this.chartype == "adversary") { return (this.type === 'encounter' && this.chartype == "adversary")
return true
} }
return false isUndead() {
return (this.type == "encounter" && this.system.isundead)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getInitiativeMalus() { getInitiativeMalus() {
@ -69,7 +66,7 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getBougette() { getBougette() {
if (this.type == "character") { if (this.type == "character") {
let b = duplicate(this.system.bougette) let b = foundry.utils.duplicate(this.system.bougette)
b.label = game.i18n.localize(game.bol.config.bougetteState[String(this.system.bougette.value)]) b.label = game.i18n.localize(game.bol.config.bougetteState[String(this.system.bougette.value)])
b.diceImg = "icons/dice/" + game.bol.config.bougetteDice[String(this.system.bougette.value)] + "black.svg" b.diceImg = "icons/dice/" + game.bol.config.bougetteDice[String(this.system.bougette.value)] + "black.svg"
return b return b
@ -80,7 +77,7 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollBougette() { async rollBougette() {
if (this.type == "character") { if (this.type == "character") {
let attribute = duplicate(this.system.attributes.vigor) let attribute = foundry.utils.duplicate(this.system.attributes.vigor)
let rollData = BoLRoll.getCommonRollData(this, "bougette", attribute, undefined) let rollData = BoLRoll.getCommonRollData(this, "bougette", attribute, undefined)
rollData.formula = game.bol.config.bougetteDice[String(this.system.bougette.value)] rollData.formula = game.bol.config.bougetteDice[String(this.system.bougette.value)]
let r = new BoLDefaultRoll(rollData) let r = new BoLDefaultRoll(rollData)
@ -91,7 +88,7 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
decBougette() { decBougette() {
if (this.type == "character") { if (this.type == "character") {
let bougette = duplicate(this.system.bougette) let bougette = foundry.utils.duplicate(this.system.bougette)
bougette.value = Math.max(Number(bougette.value) - 1, 0) bougette.value = Math.max(Number(bougette.value) - 1, 0)
this.update({ 'system.bougette': bougette }) this.update({ 'system.bougette': bougette })
} }
@ -145,7 +142,7 @@ export class BoLActor extends Actor {
} }
} }
get attributes() { get attributes() {
let attrList = duplicate(Object.values(this.system.attributes)) let attrList = foundry.utils.duplicate(Object.values(this.system.attributes))
this.addEffectModifiers(attrList, "system.attributes.") this.addEffectModifiers(attrList, "system.attributes.")
return attrList return attrList
} }
@ -199,7 +196,7 @@ export class BoLActor extends Actor {
getActiveFightOption() { getActiveFightOption() {
let it = this.items.find(i => i.type === "feature" && i.system.subtype === "fightoption" && i.system.properties.activated) let it = this.items.find(i => i.type === "feature" && i.system.subtype === "fightoption" && i.system.properties.activated)
if (it) { if (it) {
return duplicate(it) return foundry.utils.duplicate(it)
} }
return undefined return undefined
} }
@ -224,10 +221,10 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
incAttributeXP(key) { incAttributeXP(key) {
let attr = duplicate(this.system.attributes[key]) let attr = foundry.utils.duplicate(this.system.attributes[key])
if (attr) { if (attr) {
let nextXP = (attr.value == -1) ? 2 : attr.value + (attr.value + 1) let nextXP = (attr.value == -1) ? 2 : attr.value + (attr.value + 1)
let xp = duplicate(this.system.xp) let xp = foundry.utils.duplicate(this.system.xp)
if (xp.total - xp.spent >= nextXP) { if (xp.total - xp.spent >= nextXP) {
attr.value += 1 attr.value += 1
xp.spent += nextXP xp.spent += nextXP
@ -241,10 +238,10 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
incAptitudeXP(key) { incAptitudeXP(key) {
let apt = duplicate(this.system.aptitudes[key]) let apt = foundry.utils.duplicate(this.system.aptitudes[key])
if (apt) { if (apt) {
let nextXP = (apt.value == -1) ? 1 : apt.value + 2 let nextXP = (apt.value == -1) ? 1 : apt.value + 2
let xp = duplicate(this.system.xp) let xp = foundry.utils.duplicate(this.system.xp)
if (xp.total - xp.spent >= nextXP) { if (xp.total - xp.spent >= nextXP) {
apt.value += 1 apt.value += 1
xp.spent += nextXP xp.spent += nextXP
@ -259,9 +256,9 @@ export class BoLActor extends Actor {
incCareerXP(itemId) { incCareerXP(itemId) {
let career = this.items.get(itemId) let career = this.items.get(itemId)
if (career) { if (career) {
career = duplicate(career) career = foundry.utils.duplicate(career)
let nextXP = career.system.rank + 1 let nextXP = career.system.rank + 1
let xp = duplicate(this.system.xp) let xp = foundry.utils.duplicate(this.system.xp)
if (xp.total - xp.spent >= nextXP) { if (xp.total - xp.spent >= nextXP) {
xp.spent += nextXP xp.spent += nextXP
this.update({ [`system.xp`]: xp }) this.update({ [`system.xp`]: xp })
@ -280,7 +277,7 @@ export class BoLActor extends Actor {
let updates = [] let updates = []
if (fightOption) { if (fightOption) {
fightOption = duplicate(fightOption) fightOption = foundry.utils.duplicate(fightOption)
if (fightOption.system.properties.activated) { if (fightOption.system.properties.activated) {
state = false state = false
} else { } else {
@ -326,13 +323,13 @@ export class BoLActor extends Actor {
return this.items.filter(i => i.type === "feature" && i.system.subtype === "horoscope") return this.items.filter(i => i.type === "feature" && i.system.subtype === "horoscope")
} }
get boons() { get boons() {
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "boon") || []); return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "boon") || []);
} }
get flaws() { get flaws() {
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw") || []); return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw") || []);
} }
get careers() { get careers() {
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "career") || []) return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "career") || [])
} }
get origins() { get origins() {
return this.items.filter(i => i.type === "feature" && i.system.subtype === "origin"); return this.items.filter(i => i.type === "feature" && i.system.subtype === "origin");
@ -414,10 +411,10 @@ export class BoLActor extends Actor {
get bonusBoons() { get bonusBoons() {
let boons = this.items.filter(i => i.type === "feature" && i.system.subtype === "boon" && i.system.properties.isbonusdice) let boons = this.items.filter(i => i.type === "feature" && i.system.subtype === "boon" && i.system.properties.isbonusdice)
return duplicate(boons || []) return foundry.utils.duplicate(boons || [])
} }
get malusFlaws() { get malusFlaws() {
return duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw" && i.system.properties.ismalusdice) || []); return foundry.utils.duplicate(this.items.filter(i => i.type === "feature" && i.system.subtype === "flaw" && i.system.properties.ismalusdice) || []);
} }
isSorcerer() { isSorcerer() {
@ -500,7 +497,7 @@ export class BoLActor extends Actor {
/*-------------------------------------------- */ /*-------------------------------------------- */
spentAstrologyPoints(points) { spentAstrologyPoints(points) {
let astrology = duplicate(this.system.resources.astrologypoints) let astrology = foundry.utils.duplicate(this.system.resources.astrologypoints)
astrology.value -= points astrology.value -= points
astrology.value = Math.max(astrology.value, 0) astrology.value = Math.max(astrology.value, 0)
this.update({ 'system.resources.astrologypoints': astrology }) this.update({ 'system.resources.astrologypoints': astrology })
@ -551,8 +548,8 @@ export class BoLActor extends Actor {
rollData.horoscopeName = actorHoroscope.name rollData.horoscopeName = actorHoroscope.name
} }
if (rollData.horoscopeType == "majorgroup") { if (rollData.horoscopeType == "majorgroup") {
let rID = randomID(16) let rID = foundry.utils.randomID(16)
let horoscopes = duplicate(game.settings.get("bol", "horoscope-group")) let horoscopes = foundry.utils.duplicate(game.settings.get("bol", "horoscope-group"))
horoscopes[rID] = { horoscopes[rID] = {
id: rID, id: rID,
name: game.i18n.localize("BOL.ui.groupHoroscope") + this.name, name: game.i18n.localize("BOL.ui.groupHoroscope") + this.name,
@ -645,7 +642,7 @@ export class BoLActor extends Actor {
resources['power'] = this.system.resources.power resources['power'] = this.system.resources.power
} }
if (this.system.chartype == 'adversary') { if (this.system.chartype == 'adversary') {
resources['hero'] = duplicate(this.system.resources.hero) resources['hero'] = foundry.utils.duplicate(this.system.resources.hero)
resources['hero'].label = "BOL.resources.villainy" resources['hero'].label = "BOL.resources.villainy"
} }
} else { } else {
@ -791,17 +788,17 @@ export class BoLActor extends Actor {
let lastHP = await this.getFlag("world", hpID) let lastHP = await this.getFlag("world", hpID)
if (lastHP != this.system.resources.hp.value && game.user.isGM) { // Only GM sends this if (lastHP != this.system.resources.hp.value && game.user.isGM) { // Only GM sends this
await this.setFlag("world", hpID, this.system.resources.hp.value) await this.setFlag("world", hpID, this.system.resources.hp.value)
let prone = this.effects.find(ef => ef.label == "EFFECT.StatusProne") let prone = this.effects.find(ef => ef.name == game.i18n.localize("EFFECT.StatusProne"))
let dead = this.effects.find(ef => ef.label == "EFFECT.StatusDead") let dead = this.effects.find(ef => ef.name == game.i18n.localize("EFFECT.StatusDead"))
if (this.system.resources.hp.value <= 0) { if (this.system.resources.hp.value <= 0) {
if (!prone) { if (!prone) {
await this.createEmbeddedDocuments("ActiveEffect", [ await this.createEmbeddedDocuments("ActiveEffect", [
{ label: 'EFFECT.StatusProne', icon: 'icons/svg/falling.svg', flags: { core: { statusId: 'prone' } } } { name: game.i18n.localize('EFFECT.StatusProne'), icon: 'icons/svg/falling.svg', statuses: 'prone' }
]) ])
} }
if (this.system.resources.hp.value < -5 && !dead) { if (this.system.resources.hp.value < -5 && !dead) {
await this.createEmbeddedDocuments("ActiveEffect", [ await this.createEmbeddedDocuments("ActiveEffect", [
{ label: 'EFFECT.StatusDead', icon: 'icons/svg/skull.svg', flags: { core: { statusId: 'dead' } } } { name: game.i18n.localize('EFFECT.StatusDead'), icon: 'icons/svg/skull.svg', statuses: 'dead' }
]) ])
} }
ChatMessage.create({ ChatMessage.create({
@ -828,7 +825,7 @@ export class BoLActor extends Actor {
/*-------------------------------------------- */ /*-------------------------------------------- */
storeVitaliteCombat() { storeVitaliteCombat() {
this.setFlag("world", "vitalite-before-combat", duplicate(this.system.resources.hp)) this.setFlag("world", "vitalite-before-combat", foundry.utils.duplicate(this.system.resources.hp))
} }
/*-------------------------------------------- */ /*-------------------------------------------- */
async displayRecuperation() { async displayRecuperation() {
@ -852,7 +849,7 @@ export class BoLActor extends Actor {
} }
/*-------------------------------------------- */ /*-------------------------------------------- */
async applyRecuperation(recupHP) { async applyRecuperation(recupHP) {
let hp = duplicate(this.system.resources.hp) let hp = foundry.utils.duplicate(this.system.resources.hp)
//console.log("RECUP !!!!", hp, recupHP) //console.log("RECUP !!!!", hp, recupHP)
hp.value += Number(recupHP) hp.value += Number(recupHP)
hp.value = Math.min(hp.value, hp.max) hp.value = Math.min(hp.value, hp.max)
@ -1001,7 +998,7 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
rollProtection(itemId) { rollProtection(itemId) {
let armor = duplicate(this.items.get(itemId)) let armor = foundry.utils.duplicate(this.items.get(itemId))
if (armor) { if (armor) {
let armorFormula = "max(" + armor.system.properties.soak.formula + ", 0)" let armorFormula = "max(" + armor.system.properties.soak.formula + ", 0)"
let rollArmor = new Roll(armorFormula) let rollArmor = new Roll(armorFormula)
@ -1011,9 +1008,9 @@ export class BoLActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
rollWeaponDamage(itemId) { rollWeaponDamage(itemId) {
let weapon = duplicate(this.items.get(itemId)) let weapon = foundry.utils.duplicate(this.items.get(itemId))
if (weapon) { if (weapon) {
let r = new BoLDefaultRoll({ id: randomID(16), isSuccess: true, mode: "weapon", weapon: weapon, actorId: this.id, actor: this }) let r = new BoLDefaultRoll({ id: foundry.utils.randomID(16), isSuccess: true, mode: "weapon", weapon: weapon, actorId: this.id, actor: this })
r.setSuccess(true) r.setSuccess(true)
r.rollDamage() r.rollDamage()
} }
@ -1023,7 +1020,7 @@ export class BoLActor extends Actor {
toggleEquipItem(item) { toggleEquipItem(item) {
const equipable = item.system.properties.equipable; const equipable = item.system.properties.equipable;
if (equipable) { if (equipable) {
let itemData = duplicate(item); let itemData = foundry.utils.duplicate(item);
itemData.system.worn = !itemData.system.worn; itemData.system.worn = !itemData.system.worn;
return item.update(itemData); return item.update(itemData);
} }

View File

@ -9,7 +9,7 @@ export class BoLVehicleSheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["bol", "sheet", "actor"], classes: ["bol", "sheet", "actor"],
template: "systems/bol/templates/actor/vehicle-sheet.hbs", template: "systems/bol/templates/actor/vehicle-sheet.hbs",
width: 860, width: 860,
@ -116,12 +116,12 @@ export class BoLVehicleSheet extends ActorSheet {
/** @override */ /** @override */
async getData(options) { async getData(options) {
const data = super.getData(options) const data = super.getData(options)
let formData = duplicate(data) let formData = foundry.utils.duplicate(data)
formData.config = game.bol.config formData.config = game.bol.config
formData.name = this.actor.name formData.name = this.actor.name
formData.img = this.actor.img formData.img = this.actor.img
formData.system = duplicate(this.actor.system) formData.system = foundry.utils.duplicate(this.actor.system)
formData.weapons = this.actor.vehicleWeapons formData.weapons = this.actor.vehicleWeapons
formData.isGM = game.user.isGM formData.isGM = game.user.isGM
formData.options = this.options formData.options = this.options
@ -147,7 +147,7 @@ export class BoLVehicleSheet extends ActorSheet {
// Get the type of item to create. // Get the type of item to create.
const type = header.dataset.type; const type = header.dataset.type;
// Grab any data associated with this control. // Grab any data associated with this control.
const data = duplicate(header.dataset); const data = foundry.utils.duplicate(header.dataset);
// Initialize a default name. // Initialize a default name.
const name = `New ${type.capitalize()}`; const name = `New ${type.capitalize()}`;
// Prepare the item object. // Prepare the item object.

View File

@ -14,11 +14,8 @@ import { BoLUtility } from "./system/bol-utility.js"
import { BoLCombatManager } from "./system/bol-combat.js" import { BoLCombatManager } from "./system/bol-combat.js"
import { BoLTokenHud } from "./system/bol-action-hud.js" import { BoLTokenHud } from "./system/bol-action-hud.js"
import { BoLHotbar } from "./system/bol-hotbar.js" import { BoLHotbar } from "./system/bol-hotbar.js"
import { BoLAdventureGenerator } from "./system/bol-adventure-generator.js"
import { BoLCommands } from "./system/bol-commands.js" import { BoLCommands } from "./system/bol-commands.js"
import { BoLCharacterSummary } from "./system/bol-character-summary.js"
import { BoLRoll } from "./controllers/bol-rolls.js" import { BoLRoll } from "./controllers/bol-rolls.js"
import { ClassCounter} from "https://www.uberwald.me/fvtt_appcount/count-class-ready.js"
/* -------------------------------------------- */ /* -------------------------------------------- */
Hooks.once('init', async function () { Hooks.once('init', async function () {
@ -28,6 +25,7 @@ Hooks.once('init', async function () {
BoLItem, BoLItem,
BoLHotbar, BoLHotbar,
BoLRoll, BoLRoll,
BoLUtility,
macros: Macros, macros: Macros,
config: BOL config: BOL
}; };
@ -65,7 +63,6 @@ Hooks.once('init', async function () {
BoLTokenHud.init() BoLTokenHud.init()
BoLHotbar.init() BoLHotbar.init()
BoLCommands.init() BoLCommands.init()
BoLAdventureGenerator.init()
// Preload Handlebars Templates // Preload Handlebars Templates
await preloadHandlebarsTemplates(); await preloadHandlebarsTemplates();
@ -98,9 +95,13 @@ function welcomeMessage() {
Hooks.once('ready', async function () { Hooks.once('ready', async function () {
BoLUtility.ready() BoLUtility.ready()
BoLCharacterSummary.ready()
ClassCounter.registerUsageCount() import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{
console.log("ClassCounter loaded", moduleCounter)
moduleCounter.ClassCounter.registerUsageCount()
}).catch(err=>
console.log("No stats available, giving up.")
)
welcomeMessage() welcomeMessage()

View File

@ -60,6 +60,7 @@ export class BoLRoll {
armorInitMalus: actor.getArmorInitMalus(), armorInitMalus: actor.getArmorInitMalus(),
horoscopeBonusList: actor.getHoroscopesBonus(), horoscopeBonusList: actor.getHoroscopesBonus(),
horoscopeMalusList: actor.getHoroscopesMalus(), horoscopeMalusList: actor.getHoroscopesMalus(),
config: game.bol.config,
adv: "0", adv: "0",
mod: 0, mod: 0,
modRanged: 0, modRanged: 0,
@ -182,7 +183,7 @@ export class BoLRoll {
ui.notifications.warn("Unable to find weapon !") ui.notifications.warn("Unable to find weapon !")
return return
} }
weapon = duplicate(weapon) weapon = foundry.utils.duplicate(weapon)
return this.weaponCheckWithWeapon(actor, weapon) return this.weaponCheckWithWeapon(actor, weapon)
} }
@ -194,7 +195,7 @@ export class BoLRoll {
ui.notifications.warn("Unable to find Alchemy !"); ui.notifications.warn("Unable to find Alchemy !");
return; return;
} }
alchemy = duplicate(alchemy) alchemy = foundry.utils.duplicate(alchemy)
let alchemyData = alchemy.system let alchemyData = alchemy.system
if (alchemyData.properties.pccurrent < alchemyData.properties.pccost) { if (alchemyData.properties.pccurrent < alchemyData.properties.pccost) {
ui.notifications.warn("Pas assez de Points de Création investis dans la Préparation !") ui.notifications.warn("Pas assez de Points de Création investis dans la Préparation !")
@ -268,7 +269,7 @@ export class BoLRoll {
ui.notifications.warn("Impossible de trouver ce sort !") ui.notifications.warn("Impossible de trouver ce sort !")
return return
} }
spell = duplicate(spell) spell = foundry.utils.duplicate(spell)
return this.spellCheckWithSpell(actor, spell) return this.spellCheckWithSpell(actor, spell)
} }
@ -401,7 +402,7 @@ export class BoLRoll {
html.find('#attr').change((event) => { html.find('#attr').change((event) => {
let attrKey = event.currentTarget.value let attrKey = event.currentTarget.value
let actor = BoLUtility.getActorFromRollData(this.rollData) let actor = BoLUtility.getActorFromRollData(this.rollData)
this.rollData.attribute = duplicate(actor.system.attributes[attrKey]) this.rollData.attribute = foundry.utils.duplicate(actor.system.attributes[attrKey])
this.rollData.attrValue = actor.system.attributes[attrKey].value this.rollData.attrValue = actor.system.attributes[attrKey].value
this.rollData.bolApplicableEffects = this.updateApplicableEffects(this.rollData) this.rollData.bolApplicableEffects = this.updateApplicableEffects(this.rollData)
this.updateTotalDice() this.updateTotalDice()
@ -409,7 +410,7 @@ export class BoLRoll {
html.find('#apt').change((event) => { html.find('#apt').change((event) => {
let aptKey = event.currentTarget.value let aptKey = event.currentTarget.value
let actor = BoLUtility.getActorFromRollData(this.rollData) let actor = BoLUtility.getActorFromRollData(this.rollData)
this.rollData.aptitude = duplicate(actor.system.aptitudes[aptKey]) this.rollData.aptitude = foundry.utils.duplicate(actor.system.aptitudes[aptKey])
this.rollData.aptValue = actor.system.aptitudes[aptKey].value this.rollData.aptValue = actor.system.aptitudes[aptKey].value
this.rollData.bolApplicableEffects = this.updateApplicableEffects(this.rollData) this.rollData.bolApplicableEffects = this.updateApplicableEffects(this.rollData)
this.updateTotalDice() this.updateTotalDice()
@ -452,7 +453,7 @@ export class BoLRoll {
html.find('#horoscope-bonus-applied').change((event) => { html.find('#horoscope-bonus-applied').change((event) => {
this.rollData.selectedHoroscope = [] this.rollData.selectedHoroscope = []
for (let option of event.currentTarget.selectedOptions) { for (let option of event.currentTarget.selectedOptions) {
this.rollData.selectedHoroscope.push(duplicate(this.rollData.horoscopeBonusList[Number(option.index)])) this.rollData.selectedHoroscope.push(foundry.utils.duplicate(this.rollData.horoscopeBonusList[Number(option.index)]))
} }
let horoscopes = $('#horoscope-bonus-applied').val() let horoscopes = $('#horoscope-bonus-applied').val()
this.rollData.horoscopeBonus = (!horoscopes || horoscopes.length == 0) ? 0 : horoscopes.length this.rollData.horoscopeBonus = (!horoscopes || horoscopes.length == 0) ? 0 : horoscopes.length
@ -462,7 +463,7 @@ export class BoLRoll {
html.find('#horoscope-malus-applied').change((event) => { html.find('#horoscope-malus-applied').change((event) => {
this.rollData.selectedHoroscope = [] this.rollData.selectedHoroscope = []
for (let option of event.currentTarget.selectedOptions) { for (let option of event.currentTarget.selectedOptions) {
this.rollData.selectedHoroscope.push(duplicate(this.rollData.horoscopeBonusList[Number(option.index)])) this.rollData.selectedHoroscope.push(foundry.utils.duplicate(this.rollData.horoscopeBonusList[Number(option.index)]))
} }
let horoscopes = $('#horoscope-malus-applied').val() let horoscopes = $('#horoscope-malus-applied').val()
this.rollData.horoscopeMalus = (!horoscopes || horoscopes.length == 0) ? 0 : horoscopes.length this.rollData.horoscopeMalus = (!horoscopes || horoscopes.length == 0) ? 0 : horoscopes.length
@ -530,7 +531,7 @@ export class BoLRoll {
rollData.careerBonus = rollData.careerBonus ?? 0 rollData.careerBonus = rollData.careerBonus ?? 0
rollData.modRanged = rollData.modRanged ?? 0 rollData.modRanged = rollData.modRanged ?? 0
rollData.mod = rollData.mod ?? 0 rollData.mod = rollData.mod ?? 0
rollData.id = randomID(16) rollData.id = foundry.utils.randomID(16)
rollData.weaponModifier = 0 rollData.weaponModifier = 0
rollData.attackBonusDice = false rollData.attackBonusDice = false
rollData.armorMalus = 0 rollData.armorMalus = 0
@ -616,16 +617,15 @@ export class BoLDefaultRoll {
if (this.rollData.applyId) { if (this.rollData.applyId) {
BoLUtility.cleanupButtons(this.rollData.applyId) BoLUtility.cleanupButtons(this.rollData.applyId)
} }
this.rollData.optionsId = randomID(16) this.rollData.optionsId = foundry.utils.randomID(16)
this.rollData.applyId = randomID(16) this.rollData.applyId = foundry.utils.randomID(16)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async roll() { async roll() {
const r = new Roll(this.rollData.formula) const r = new Roll(this.rollData.formula)
//console.log("Roll formula", this.rollData.formula) await r.roll()
await r.roll({ "async": false })
let diceData = BoLUtility.getDiceData() let diceData = BoLUtility.getDiceData()
//console.log("DICEDATA", diceData) //console.log("DICEDATA", diceData)
@ -688,7 +688,7 @@ export class BoLDefaultRoll {
flavor: msgFlavor, flavor: msgFlavor,
speaker: ChatMessage.getSpeaker({ actor: actor }), speaker: ChatMessage.getSpeaker({ actor: actor }),
}) })
this.rollData.roll = duplicate(this.rollData.roll) // Remove object, keep data (v111 ready) this.rollData.roll = foundry.utils.duplicate(this.rollData.roll) // Remove object, keep data (v111 ready)
msg.setFlag("world", "bol-roll-data", this.rollData) msg.setFlag("world", "bol-roll-data", this.rollData)
}) })
} }
@ -741,7 +741,7 @@ export class BoLDefaultRoll {
speaker: ChatMessage.getSpeaker({ actor: actor }), speaker: ChatMessage.getSpeaker({ actor: actor }),
flags: { msgType: "default" } flags: { msgType: "default" }
}) })
this.rollData.damageRoll = duplicate(this.rollData.damageRoll) this.rollData.damageRoll = foundry.utils.duplicate(this.rollData.damageRoll)
this.rollData.actor = undefined // Cleanup this.rollData.actor = undefined // Cleanup
msg.setFlag("world", "bol-roll-data", this.rollData) msg.setFlag("world", "bol-roll-data", this.rollData)
}) })

View File

@ -8,7 +8,7 @@ export class BoLItemSheet extends ItemSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["bol", "sheet", "item"], classes: ["bol", "sheet", "item"],
template: "systems/bol/templates/item/item-sheet.hbs", template: "systems/bol/templates/item/item-sheet.hbs",
width: 650, width: 650,
@ -21,7 +21,7 @@ export class BoLItemSheet extends ItemSheet {
/** @override */ /** @override */
async getData(options) { async getData(options) {
const data = super.getData(options) const data = super.getData(options)
let itemData = duplicate(data.document) let itemData = foundry.utils.duplicate(data.document)
data.config = game.bol.config data.config = game.bol.config
data.item = itemData data.item = itemData
data.category = itemData.system.category data.category = itemData.system.category
@ -78,7 +78,7 @@ export class BoLItemSheet extends ItemSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
postItem() { postItem() {
let chatData = duplicate(this.item) let chatData = foundry.utils.duplicate(this.item)
if (this.actor) { if (this.actor) {
chatData.actor = { id: this.actor.id }; chatData.actor = { id: this.actor.id };
} }

View File

@ -1,620 +0,0 @@
{
"titre1": [
{
"prefix": "la",
"name": "Prophétie"
},
{
"prefix": "les",
"name": "Grottes",
"isLieu": true
},
{
"prefix": "les",
"name": "Collines",
"isLieu": true
},
{
"prefix": "les",
"name": "Voleurs",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "les",
"name": "Sorcier(s)",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "la",
"name": "Bataille"
},
{
"prefix": "la",
"name": "Légende"
},
{
"prefix": "la",
"name": "Tour",
"isLieu": true
},
{
"prefix": "l'",
"name": "Ile",
"isLieu": true
},
{
"prefix": "les",
"name": "Pirates",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "les",
"name": "Druide(s)",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "le",
"name": "Navire",
"isCarriere": false
},
{
"prefix": "la",
"name": "Couronne",
"isObjet": true
},
{
"prefix": "la",
"name": "Cité",
"isLieu": true
},
{
"prefix": "le",
"name": "Désert",
"isLieu": true
},
{
"prefix": "les",
"name": "Bête(s)",
"isEnnemi": true,
"isLieu": false
},
{
"prefix": "les",
"name": "Démon(s)",
"isEnnemi": true,
"isLieu": false
},
{
"prefix": "le",
"name": "Trésor",
"isObjet": true
},
{
"prefix": "l'",
"name": "Epée",
"isObjet": true
},
{
"prefix": "l'",
"name": "Arène",
"isLieu": true
},
{
"prefix": "les",
"name": "Marais",
"isLieu": true
},
{
"prefix": "les",
"name": "Seigneur(s)",
"isEnnemi": true,
"isLieu": false
},
{
"prefix": "les",
"name": "Assassin(s)",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "le",
"name": "Culte",
"isEnnemi": true,
"isCarriere": false
},
{
"prefix": "le",
"name": "Secret",
"isCarriere": false
},
{
"prefix": "le",
"name": "Palais",
"isLieu": true
},
{
"prefix": "la",
"name": "Mer",
"isLieu": true
},
{
"prefix": "les",
"name": "Barbares",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "le",
"name": "Manuscrit",
"isObjet": true
},
{
"prefix": "les",
"name": "Plaines",
"isLieu": true
},
{
"prefix": "le",
"name": "Sang",
"isLieu": false
},
{
"prefix": "la",
"name": "Tombe",
"isLieu": true
},
{
"prefix": "la",
"name": "Forêt",
"isLieu": true
},
{
"prefix": "les",
"name": "Esclaves",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "les",
"name": "Mendiant(s)",
"isEnnemi": true,
"isCarriere": true
},
{
"prefix": "les",
"name": "Montagnes",
"isCarriereLieu": true
}
],
"titre2": [
{
"prefix": "du",
"name": "mal"
},
{
"prefix": "et le",
"name": "Roi Maussade",
"isEnnemi": true
},
{
"prefix": "et la",
"name": "pestilence",
"isEnnemi": false
},
{
"prefix": "de",
"name": "Malakut",
"isLieu": true
},
{
"prefix": "d'",
"name": "Halakh",
"isLieu": true
},
{
"prefix": "d'",
"name": "Hyrdral",
"isLieu": true
},
{
"prefix": "des",
"name": "esprits abandonnés",
"isEnnemi": true
},
{
"prefix": "du",
"name": "chaos",
"isEnnemi": true
},
{
"prefix": "de la",
"name": "folie",
"isEnnemi": false
},
{
"prefix": "de",
"name": "Satarla",
"isLieu": true
},
{
"prefix": "d'",
"name": "Urceb",
"isLieu": true
},
{
"prefix": "des",
"name": "Terres Désolées",
"isLieu": true
},
{
"prefix": "de la",
"name": "mort",
"isLieu": false
},
{
"prefix": "des",
"name": "idoles impies",
"isObjet": true
},
{
"prefix": "des",
"name": "ténèbres",
"isObjet": false
},
{
"prefix": "de",
"name": "Parsool",
"isLieu": true
},
{
"prefix": "de",
"name": "Qiddesh",
"isLieu": true
},
{
"prefix": "de",
"name": "Kasht",
"isLieu": true
},
{
"prefix": "de la ",
"name": "falalité",
"isLieu": false
},
{
"prefix": "du",
"name": "Nécromant",
"isEnnemi": true
},
{
"prefix": "du",
"name": "Néant",
"isEnnemi": false
},
{
"prefix": "de",
"name": "Lysor",
"isLieu": true
},
{
"prefix": "d'",
"name": "Oosal",
"isLieu": true
},
{
"prefix": "de",
"name": "Thulé",
"isLieu": true
},
{
"prefix": "du",
"name": "désespoir",
"isLieu": false
},
{
"prefix": "du",
"name": "Dieu Bouffi",
"isEnnemi": true
},
{
"prefix": "du",
"name": "silence",
"isEnnemi": false
},
{
"prefix": "de",
"name": "Tyrus",
"isLieu": true
},
{
"prefix": "d'",
"name": "Ygddar",
"isLieu": true
},
{
"prefix": "de",
"name": "la Côte de Feu",
"isLieu": true
},
{
"prefix": "des",
"name": "ombres cruelles",
"isLieu": false
},
{
"prefix": "de la",
"name": "poussière écarlate",
"isLieu": false
},
{
"prefix": "du",
"name": "destin",
"isLieu": false
},
{
"prefix": "du",
"name": "Valgard",
"isLieu": true
},
{
"prefix": "de",
"name": "Qeb",
"isLieu": true
},
{
"prefix": "de",
"name": "la Mer Inconnue",
"isLieu": true
}
],
"mission": [
{
"name": "dattaquer un lieu."
},
{
"name": "de détruire un certain objet."
},
{
"name": "de kidnapper quelquun."
},
{
"name": "dobtenir une certaine chose."
},
{
"name": "dexplorer un lieu."
},
{
"name": "de sauver une personne."
},
{
"name": "déchapper à quelquun."
},
{
"name": "de fuir un lieu."
},
{
"name": "de trouver une personne."
},
{
"name": "de trouver un lieu."
},
{
"name": "de trouver chose."
},
{
"name": "de protéger une personne."
},
{
"name": "de protéger un lieu."
},
{
"name": "de protéger chose."
},
{
"name": "de dérober une certaine chose."
},
{
"name": "de tuer une personne."
},
{
"name": "de détruire une chose."
},
{
"name": "descorter une personne."
},
{
"name": "de transporter une chose."
}
],
"carriere": [
"Noble",
"Acrobate",
"Sorcier",
"Alchimiste",
"Esclave",
"Courtisane",
"Médecin",
"Marin",
"Érudit",
"Mendiant",
"Scribe",
"Poète",
"Forgeron",
"Prêtre",
"Danseur",
"Marchand",
"Pilote des airs",
"Fermier"
],
"lieux1": [
"Palais",
"Donjon",
"Ruines",
"Sanctuaire",
"Crypte",
"Forteresse",
"Tombeau",
"Grottes",
"Tour",
"Antre",
"Île",
"Montagne"
],
"lieux2": [
"de la mort.",
"de la destruction.",
"du désespoir.",
"des morts-vivants.",
"du sage.",
"de l'or.",
"de la tempête.",
"de la terreur.",
"descannibales.",
"du désespoir.",
"des Rois-Sorciers.",
"des âmes perdues."
],
"objets1": [
"Livre",
"Anneau",
"Coupe",
"Joyau",
"Casque",
"Parchemin",
"Couronne",
"Sceau",
"Cristal",
"Crâne",
"Épée",
"Bâton"
],
"objets2": [
"des sept sceaux.",
"de l'éternelle douleur.",
"du sang bouillonnant.",
"de la mort hideuse.",
"du pouvoir suprême.",
"du serpent sournois.",
"du plaisir infini.",
"de la richesse illusoire.",
"de la cruelle trahison.",
"du froid funeste.",
"des spectres inapaisés.",
"du mystère."
],
"motivation": [
"cest le genre de choses que fait Krongar.",
"sinon il finira en prison.",
"il est victime dun chantage.",
"il a trouvé une carte.",
"il a été maudit.",
"il a eu une vision (peut-être un soir de beuverie).",
"il a été engagé pour le faire.",
"il a surpris une conversation.",
"il a lu quelque chose dans un ancien manuscrit.",
"il est tombé accidentellement dans cette affaire.",
"il cherche à assouvir une vengeance.",
"il a ,été dupé."
],
"rival": [
"un poète obsédé.",
"un prince (esse) guerrier.",
"un ministre corrompu.",
"un sectateur fanatique.",
"un noble arrogant.",
"un étrange alchimiste.",
"un sorcier maléfique.",
"un druide cruel.",
"un marchand cupide.",
"un brigand sans foi ni loi.",
"un démon sanguinaire.",
"un fantôme errant."
],
"dieu": [
"Tharungozoth",
"Yrzlak",
"Dyr",
"Knothakon",
"Hadron",
"Shazzadion",
"Chiomalla",
"SaTel",
"Morgazzon",
"Hurm",
"Afyra",
"Grondil",
"Zaggath",
"Zalkyr",
"Fillana",
"Lilandra",
"Zylidith",
"Quathoomar",
"Iondal",
"Piandra",
"Nemmereth",
"Charkond",
"Karyzon",
"Zarymphyxos",
"Kryphondus"
],
"complique1": [
"cest toujours comme ça avec Krongar !",
"la situation réveille chez Krongar des peurs ancestrales.",
"un usurier et ses hommes de main veulent récupérer leur argent.",
"une grave épidémie ravage la région.",
"Krongar est traqué pour un crime passé.",
"les actions dun groupe de rebelles rendent la région peu sûre.",
"des hordes de guerriers envahissent la région pour la conquérir",
"un(e) ancien(ne) admirateur (trice) éconduit(e) cherche à se venger.",
"la loi locale est très sévère et interdit une chose nécessaire à laccomplissement de la mission.",
"un(e) admirateur (trice) inattendu(e) déclare son amour.",
"un rival qui fut défait autrefois réapparaît et met son grain de sel.",
"la folie de Morgazzon fait des ravages dans la région."
],
"obstacle": [
"dun ancien secret.",
"dun long voyage.",
"dune malédiction.",
"dun voleur rusé.",
"dune forte troupe de soldats.",
"dun énorme monstre.",
"dune horde de monstres.",
"dun manque de temps.",
"de gardes et de pièges magiques.",
"dune catastrophe naturelle sur le point de se produire.",
"dune énigme à résoudre.",
"dune bataille à gagner."
],
"retournement": [
"Lennemi est en fait Krongar lui-même, venu dune autre réalité !",
"Toute cette histoire était un piège machiavélique !",
"Lennemi est en fait un vieil ami ou un allié qui a comploté dans lombre !",
"Krongar est contraint de sassocier à un rival pour accomplir la mission !",
"Tout ce qui semblait ordinaire se révèle en fait surnaturel !",
"Lennemi est en fait le père, la mère, le frère ou la sœur de Krongar !",
"Une toute autre mission attend en fait notre héros !",
"Parfois, il ny a pas de retournement de situation !",
"i la mission est accomplie, cela entraînera de terribles répercussions !",
"Le destin offre à Krongar une chance daméliorer les choses, et il est renvoyé dans le temps au début de laventure. La saga recommence, mais cette fois sans retournement de situation !",
"Un ami ou un allié a trahi Krongar !",
"Les dieux sont furieux et lui imposent d'autres tâches"
],
"recompense": [
"Rien du tout ! On sest joué de lui !",
"Beaucoup moins quescompté.",
"Beaucoup moins quescompté, mais il gagne au moins la reconnaissance dune personne haut placée.",
"Beaucoup moins quescompté, mais il est marqué par les dieux (avantage).",
"La récompense escomptée.",
"La récompense escomptée, et il est marqué par les dieux (avantage).",
"La récompense escomptée, ainsi que la reconnaissance dune personne haut placée.",
"Plus quescompté.",
"Plus quescompté, ainsi que la reconnaissance dune personne haut placée.",
"Plus quescompté, et il est marqué par les dieux (avantage).",
"Plus quescompté, ainsi que la reconnaissance dune personne haut placée, et il est marqué par les dieux (avantage).",
"Une promotion... Longue vie au roi Krongar !"
]
}

View File

@ -33,9 +33,9 @@ export class BoLTokenHud {
let action = hudData.actionsList[actionIndex] let action = hudData.actionsList[actionIndex]
const actionItem = actor.items.get(action._id) const actionItem = actor.items.get(action._id)
if (actionItem.system.subtype == "weapon") { if (actionItem.system.subtype == "weapon") {
BoLRoll.weaponCheckWithWeapon(hudData.actor, duplicate(actionItem)) BoLRoll.weaponCheckWithWeapon(hudData.actor, foundry.utils.duplicate(actionItem))
} else if (actionItem.system.subtype == "fightoption") { } else if (actionItem.system.subtype == "fightoption") {
let chatData = duplicate(actionItem) let chatData = foundry.utils.duplicate(actionItem)
if (actionItem.actor) { if (actionItem.actor) {
chatData.actor = { id: actionItem.actor._id }; chatData.actor = { id: actionItem.actor._id };
} }

View File

@ -1,86 +0,0 @@
/* -------------------------------------------- */
import { BoLUtility } from "./bol-utility.js";
/* -------------------------------------------- */
export class BoLAdventureGenerator {
/* -------------------------------------------- */
static async init() {
this.adventureData = await fetchJsonWithTimeout("systems/bol/module/system/adventure_data.json")
}
/* -------------------------------------------- */
static async createAdventure() {
let roll1 = new Roll("1d" + this.adventureData.titre1.length).evaluate({ async: false })
let roll2 = new Roll("1d" + this.adventureData.titre2.length).evaluate({ async: false })
let p1 = this.adventureData.titre1[roll1.result - 1]
let p2 = this.adventureData.titre2[roll2.result - 1]
let story = {}
story.title = "Krongar et " + p1.prefix + " " + p1.name + " " + p2.prefix + " " + p2.name
let rollM = new Roll("1d" + this.adventureData.mission.length).evaluate({ async: false })
story.mission = "La mission de Krongar est de " + this.adventureData.mission[rollM.result - 1].name
if (!p1.isCarriere && !p2.isCarriere) {
let rollC = new Roll("1d" + this.adventureData.carriere.length).evaluate({ async: false })
story.carriere = "Une carrière : " + this.adventureData.carriere[rollC.result - 1]
}
if (!p1.isLieu && !p2.isLieu) {
let rollL1 = new Roll("1d" + this.adventureData.lieux1.length).evaluate({ async: false })
let rollL2 = new Roll("1d" + this.adventureData.lieux2.length).evaluate({ async: false })
story.lieu = "Un lieu : " + this.adventureData.lieux1[rollL1.result - 1] + " " + this.adventureData.lieux2[rollL2.result - 1]
}
if (!p1.isObjet && !p2.isObjet) {
let rollO1 = new Roll("1d" + this.adventureData.objets1.length).evaluate({ async: false })
let rollO2 = new Roll("1d" + this.adventureData.objets2.length).evaluate({ async: false })
story.objet = "Un objet : " + this.adventureData.objets1[rollO1.result - 1] + " " + this.adventureData.objets2[rollO2.result - 1]
}
let rollMOT = new Roll("1d" + this.adventureData.motivation.length).evaluate({ async: false })
story.motivation = "Krongar entreprend cette mission parce que " + this.adventureData.motivation[rollMOT.result - 1]
if (!p1.isEnnemi && !p2.isEnnemi) {
let rollE = new Roll("1d" + this.adventureData.rival.length).evaluate({ async: false })
story.rival = "Un rival : " + this.adventureData.rival[rollE.result - 1]
}
let rollDieu = new Roll("1d6").evaluate({ async: false })
if (rollDieu.result == 6) {
rollDieu = new Roll("1d" + this.adventureData.dieu.length).evaluate({ async: false })
story.dieu = "Un Dieu est impliqué : " + this.adventureData.dieu[rollDieu.result - 1]
}
let rollComp = new Roll("1d6").evaluate({ async: false })
if (rollComp.result >= 5) {
rollComp = new Roll("1d" + this.adventureData.complique1.length).evaluate({ async: false })
story.complication = "Une complication : " + this.adventureData.complique1[rollComp.result - 1]
}
let rollObs = new Roll("1d6").evaluate({ async: false })
if (rollObs.result >= 5) {
rollObs = new Roll("1d" + this.adventureData.obstacle.length).evaluate({ async: false })
story.obstacle = "Un obstacle : " + this.adventureData.obstacle[rollObs.result - 1]
}
let rollRet = new Roll("1d6").evaluate({ async: false })
if (rollRet.result == 6) {
rollRet = new Roll("1d" + this.adventureData.retournement.length).evaluate({ async: false })
story.retournement = "Un retournement : " + this.adventureData.retournement[rollRet.result - 1]
}
let rollRec = new Roll("1d" + this.adventureData.recompense.length).evaluate({ async: false })
story.recompense = "Pour sa peine, Krongar reçoit " + this.adventureData.recompense[rollRec.result - 1]
ChatMessage.create({
alias: this.name,
whisper: BoLUtility.getUsers(user => user.isGM),
content: await renderTemplate('systems/bol/templates/chat/chat-adventure-result.hbs',
{ name: "Aventure !", img: "icons/commodities/gems/gem-cluster-red.webp", story : story})
})
}
}

View File

@ -40,14 +40,14 @@ export class BoLCalendar extends Application {
constructor() { constructor() {
super(); super();
// position // position
this.calendarPos = duplicate(game.settings.get("bol", "calendar-pos")); this.calendarPos = foundry.utils.duplicate(game.settings.get("bol", "calendar-pos"));
if (this.calendarPos == undefined || this.calendarPos.top == undefined) { if (this.calendarPos == undefined || this.calendarPos.top == undefined) {
this.calendrierPos = BoLCalendar.createCalendarPos() this.calendrierPos = BoLCalendar.createCalendarPos()
game.settings.set("bol", "calendar-pos", this.calendarPos) game.settings.set("bol", "calendar-pos", this.calendarPos)
} }
// Calendar // Calendar
this.calendar = duplicate(game.settings.get("bol", "calendar") ?? BoLCalendar.getCalendar(0)); this.calendar = foundry.utils.duplicate(game.settings.get("bol", "calendar") ?? BoLCalendar.getCalendar(0));
this.calendar.year = this.calendar.year || 900 this.calendar.year = this.calendar.year || 900
this.calendar.month = 0 this.calendar.month = 0
@ -58,7 +58,7 @@ export class BoLCalendar extends Application {
/* -------------------------------------------- */ /* -------------------------------------------- */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
template: "systems/bol/templates/calendar-template.html", template: "systems/bol/templates/calendar-template.html",
popOut: false, popOut: false,
resizable: false resizable: false
@ -95,11 +95,11 @@ export class BoLCalendar extends Application {
this.calendar.hour -= 24 this.calendar.hour -= 24
await this.incrementDay() await this.incrementDay()
} }
game.settings.set("bol", "calendar", duplicate(this.calendar)); game.settings.set("bol", "calendar", foundry.utils.duplicate(this.calendar));
// Notification aux joueurs // TODO: replace with Hook on game settings update // Notification aux joueurs // TODO: replace with Hook on game settings update
game.socket.emit(SYSTEM_SOCKET_ID, { game.socket.emit(SYSTEM_SOCKET_ID, {
msg: "msg_sync_time", msg: "msg_sync_time",
data: duplicate(this.calendrier) data: foundry.utils.duplicate(this.calendrier)
}); });
} }
@ -112,7 +112,7 @@ export class BoLCalendar extends Application {
/* -------------------------------------------- */ /* -------------------------------------------- */
syncPlayerTime(calendrier) { syncPlayerTime(calendrier) {
this.calendrier = duplicate(calendrier); // Local copy update this.calendrier = foundry.utils.duplicate(calendrier); // Local copy update
this.updateDisplay(); this.updateDisplay();
} }
@ -123,7 +123,7 @@ export class BoLCalendar extends Application {
} }
this.calendrier.heureRdD = indexHeure; this.calendrier.heureRdD = indexHeure;
this.calendrier.minutesRelative = 0; this.calendrier.minutesRelative = 0;
game.settings.set(SYSTEM_RDD, "calendrier", duplicate(this.calendrier)); game.settings.set(SYSTEM_RDD, "calendrier", foundry.utils.duplicate(this.calendrier));
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -312,13 +312,13 @@ export class BoLCalendar extends Application {
this.calendrier.jour = Number(calendrierData.jourMois) - 1; this.calendrier.jour = Number(calendrierData.jourMois) - 1;
this.calendrier.moisRdD = RdDCalendrier.getChiffreFromSigne(calendrierData.moisKey); this.calendrier.moisRdD = RdDCalendrier.getChiffreFromSigne(calendrierData.moisKey);
this.calendrier.heureRdD = RdDCalendrier.getChiffreFromSigne(calendrierData.heureKey); this.calendrier.heureRdD = RdDCalendrier.getChiffreFromSigne(calendrierData.heureKey);
game.settings.set(SYSTEM_RDD, "calendrier", duplicate(this.calendrier)); game.settings.set(SYSTEM_RDD, "calendrier", foundry.utils.duplicate(this.calendrier));
await this.rebuildListeNombreAstral(); await this.rebuildListeNombreAstral();
game.socket.emit(SYSTEM_SOCKET_ID, { game.socket.emit(SYSTEM_SOCKET_ID, {
msg: "msg_sync_time", msg: "msg_sync_time",
data: duplicate(this.calendrier) data: foundry.utils.duplicate(this.calendrier)
}); });
this.updateDisplay(); this.updateDisplay();
@ -326,7 +326,7 @@ export class BoLCalendar extends Application {
/* -------------------------------------------- */ /* -------------------------------------------- */
async showCalendarEditor() { async showCalendarEditor() {
let calendrierData = duplicate(this.fillCalendrierData()); let calendrierData = foundry.utils.duplicate(this.fillCalendrierData());
if (this.editeur == undefined) { if (this.editeur == undefined) {
calendrierData.jourMoisOptions = RdDCalendrier.buildJoursMois(); calendrierData.jourMoisOptions = RdDCalendrier.buildJoursMois();
calendrierData.heuresOptions = [0, 1]; calendrierData.heuresOptions = [0, 1];
@ -344,7 +344,7 @@ export class BoLCalendar extends Application {
/* -------------------------------------------- */ /* -------------------------------------------- */
async showAstrologieEditor() { async showAstrologieEditor() {
let calendrierData = duplicate(this.fillCalendrierData()); let calendrierData = foundry.utils.duplicate(this.fillCalendrierData());
let astrologieArray = []; let astrologieArray = [];
this.listeNombreAstral = this.listeNombreAstral || []; this.listeNombreAstral = this.listeNombreAstral || [];
for (let astralData of this.listeNombreAstral) { for (let astralData of this.listeNombreAstral) {
@ -353,7 +353,7 @@ export class BoLCalendar extends Application {
let actor = game.actors.get(vf.actorId); let actor = game.actors.get(vf.actorId);
vf.actorName = (actor) ? actor.name : "Inconnu"; vf.actorName = (actor) ? actor.name : "Inconnu";
} }
astrologieArray.push(duplicate(astralData)); astrologieArray.push(foundry.utils.duplicate(astralData));
} }
let heuresParActeur = {}; let heuresParActeur = {};
for (let actor of game.actors) { for (let actor of game.actors) {
@ -448,7 +448,7 @@ export class BoLCalendar extends Application {
game.system.rdd.calendrier.calendrierPos.top = yPos; game.system.rdd.calendrier.calendrierPos.top = yPos;
game.system.rdd.calendrier.calendrierPos.left = xPos; game.system.rdd.calendrier.calendrierPos.left = xPos;
if (game.user.isGM) { if (game.user.isGM) {
game.settings.set(SYSTEM_RDD, "calendrier-pos", duplicate(game.system.rdd.calendrier.calendrierPos)); game.settings.set(SYSTEM_RDD, "calendrier-pos", foundry.utils.duplicate(game.system.rdd.calendrier.calendrierPos));
} }
} }
} }
@ -456,7 +456,7 @@ export class BoLCalendar extends Application {
game.system.rdd.calendrier.calendrierPos.top = 200; game.system.rdd.calendrier.calendrierPos.top = 200;
game.system.rdd.calendrier.calendrierPos.left = 200; game.system.rdd.calendrier.calendrierPos.left = 200;
if (game.user.isGM) { if (game.user.isGM) {
game.settings.set(SYSTEM_RDD, "calendrier-pos", duplicate(game.system.rdd.calendrier.calendrierPos)); game.settings.set(SYSTEM_RDD, "calendrier-pos", foundry.utils.duplicate(game.system.rdd.calendrier.calendrierPos));
} }
this.setPos(game.system.rdd.calendrier.calendrierPos); this.setPos(game.system.rdd.calendrier.calendrierPos);
} }

View File

@ -1,162 +0,0 @@
/* -------------------------------------------- */
import { BoLUtility } from "./bol-utility.js";
import { BoLRoll } from "../controllers/bol-rolls.js";
/* -------------------------------------------- */
export class BoLCharacterSummary extends Application {
/* -------------------------------------------- */
static displayPCSummary(){
game.bol.charSummary.render(true)
}
/* -------------------------------------------- */
updatePCSummary(){
if ( this.rendered) {
this.render(true)
}
}
/* -------------------------------------------- */
static createSummaryPos() {
return { top: 200, left: 200 };
}
/* -------------------------------------------- */
static ready() {
if ( !game.user.isGM ) { // Uniquement si GM
return
}
let charSummary = new BoLCharacterSummary()
game.bol.charSummary = charSummary
}
/* -------------------------------------------- */
constructor() {
super();
//game.settings.set("world", "character-summary-data", {npcList: [], x:0, y:0})
this.settings = game.settings.get("world", "character-summary-data")
}
/* -------------------------------------------- */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
template: "systems/bol/templates/apps/character-summary-template.html",
popOut: true,
resizable: true,
dragDrop: [{ dragSelector: ".items-list .item", dropSelector: null }],
classes: ["bol", "dialog"], width: 820, height: 'fit-content'
})
}
/* -------------------------------------------- */
getData() {
let formData = super.getData();
formData.pcs = game.actors.filter( ac => ac.type == "character" && ac.hasPlayerOwner )
formData.npcs = []
let newList = []
let toUpdate = false
for( let actorId of this.settings.npcList ) {
let actor = game.actors.get(actorId)
if (actor) {
formData.npcs.push( actor )
newList.push(actorId)
} else {
toUpdate = true
}
}
formData.config = game.bol.config
formData.horoscopeGroupList = game.settings.get("bol", "horoscope-group")
if ( toUpdate ) {
this.settings.npcList = newList
//console.log("Going to update ...", this.settings)
game.settings.set("world", "character-summary-data", this.settings)
}
return formData
}
/* -------------------------------------------- */
updateNPC() {
game.settings.set("world", "character-summary-data", game.bol.charSummary.settings)
game.bol.charSummary.close()
setTimeout( function() { game.bol.charSummary.render(true)}, 500)
}
/* -------------------------------------------- */
async _onDrop(event) {
//console.log("Dragged data are : ", dragData)
let data = event.dataTransfer.getData('text/plain')
let dataItem = JSON.parse( data)
let actor = fromUuidSync(dataItem.uuid)
if (actor) {
game.bol.charSummary.settings.npcList.push( actor.id )
game.bol.charSummary.updateNPC()
} else {
ui.notifications.warn( game.i18n.localize("BOL.ui.noactorfound") )
}
}
/* -------------------------------------------- */
/** @override */
async activateListeners(html) {
super.activateListeners(html);
html.find('.actor-open').click((event) => {
const li = $(event.currentTarget).parents(".item")
const actor = game.actors.get(li.data("actor-id"))
actor.sheet.render(true)
})
html.find('.summary-roll').click((event) => {
const li = $(event.currentTarget).parents(".item")
const actor = game.actors.get(li.data("actor-id"))
let type = $(event.currentTarget).data("type")
let key = $(event.currentTarget).data("key")
if ( type == "attribute") {
BoLRoll.attributeCheck(actor, key, event)
} else if (type == "aptitude") {
BoLRoll.aptitudeCheck(actor, key, event)
}
})
html.find('.actor-delete').click(event => {
const li = $(event.currentTarget).parents(".item");
let actorId = li.data("actor-id")
let newList = game.bol.charSummary.settings.npcList.filter(id => id != actorId)
game.bol.charSummary.settings.npcList = newList
game.bol.charSummary.updateNPC()
})
html.find('#horoscope-group-edit-available').change(event => {
const horoId = $(event.currentTarget).data("horo-id")
let newValue = event.currentTarget.value
let horoscopes = duplicate(game.settings.get("bol", "horoscope-group"))
if ( horoId && horoscopes[horoId]) {
horoscopes[horoId].availableDice = Number(newValue)
if (newValue <= 0) {
horoscopes[horoId] = undefined
}
game.settings.set("bol", "horoscope-group", horoscopes)
setTimeout(function() { BoLUtility.updateSheets()}, 800 )
}
})
html.find('#horoscope-group-edit-max').change(event => {
const horoId = $(event.currentTarget).data("horo-id")
let newValue = event.currentTarget.value
let horoscopes = duplicate(game.settings.get("bol", "horoscope-group"))
if ( horoId && horoscopes[horoId]) {
horoscopes[horoId].maxDice = Number(newValue)
if (newValue <= 0) {
horoscopes[horoId] = undefined
}
game.settings.set("bol", "horoscope-group", horoscopes)
setTimeout(function() { BoLUtility.updateSheets()}, 800 )
}
})
}
}

View File

@ -1,6 +1,3 @@
/* -------------------------------------------- */
import { BoLAdventureGenerator } from "./bol-adventure-generator.js"
import { BoLCharacterSummary } from "./bol-character-summary.js"
/* -------------------------------------------- */ /* -------------------------------------------- */
export class BoLCommands { export class BoLCommands {
@ -8,8 +5,6 @@ export class BoLCommands {
static init() { static init() {
if (!game.bol.commands) { if (!game.bol.commands) {
const bolCommands = new BoLCommands() const bolCommands = new BoLCommands()
//bolCommands.registerCommand({ path: ["/adventure"], func: (content, msg, params) => BoLAdventureGenerator.createAdventure(), descr: "Nouvelle idée d'aventure!" });
bolCommands.registerCommand({ path: ["/pcview"], func: (content, msg, params) => BoLCharacterSummary.displayPCSummary(), descr: "Affiche la liste des PJs!" });
game.bol.commands = bolCommands game.bol.commands = bolCommands
} }

View File

@ -136,6 +136,10 @@ export class BoLUtility {
this.successValue = Number(game.settings.get("bol", "dice-success-value")) this.successValue = Number(game.settings.get("bol", "dice-success-value"))
this.criticalSuccessValue = Number(game.settings.get("bol", "dice-critical-success-value")) this.criticalSuccessValue = Number(game.settings.get("bol", "dice-critical-success-value"))
this.criticalFailureValue = Number(game.settings.get("bol", "dice-critical-failure-value")) this.criticalFailureValue = Number(game.settings.get("bol", "dice-critical-failure-value"))
// Update the effect modifiers
game.bol.config.effectIdentifiers = foundry.utils.mergeObject(game.bol.config.effectIdentifiers, game.bol.config.attackAttributes)
game.bol.config.effectIdentifiers = foundry.utils.mergeObject(game.bol.config.effectIdentifiers, game.bol.config.aptitudes)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -196,7 +200,7 @@ export class BoLUtility {
//$("#logo").attr("src", this.getLogoTopLeft() ) //$("#logo").attr("src", this.getLogoTopLeft() )
$("#logo").css("content", `url(${this.getLogoTopLeft()})`) $("#logo").css("content", `url(${this.getLogoTopLeft()})`)
CONFIG.statusEffects = duplicate(game.bol.config.statusEffects) CONFIG.statusEffects = foundry.utils.duplicate(game.bol.config.statusEffects)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -311,7 +315,7 @@ export class BoLUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static blindMessageToGM(chatOptions) { static blindMessageToGM(chatOptions) {
let chatGM = duplicate(chatOptions); let chatGM = foundry.utils.duplicate(chatOptions);
chatGM.whisper = this.getUsers(user => user.isGM); chatGM.whisper = this.getUsers(user => user.isGM);
chatGM.content = "Blind message of " + game.user.name + "<br>" + chatOptions.content; chatGM.content = "Blind message of " + game.user.name + "<br>" + chatOptions.content;
console.log("blindMessageToGM", chatGM); console.log("blindMessageToGM", chatGM);
@ -323,7 +327,7 @@ export class BoLUtility {
if (rollData.targetId) { if (rollData.targetId) {
// Broadcast to GM or process it directly in case of GM defense // Broadcast to GM or process it directly in case of GM defense
if (!game.user.isGM) { if (!game.user.isGM) {
game.socket.emit("system.bol", { name: "msg_attack_success", data: duplicate(rollData) }) game.socket.emit("system.bol", { name: "msg_attack_success", data: foundry.utils.duplicate(rollData) })
} else { } else {
BoLUtility.processAttackSuccess(rollData) BoLUtility.processAttackSuccess(rollData)
} }
@ -737,8 +741,8 @@ export class BoLUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static removeGroupHoroscope(rollData) { static removeGroupHoroscope(rollData) {
let horo = rollData.horoscopeGroupList[rollData.selectedGroupHoroscopeIndex] let horo = rollData.horoscopeGroupList[rollData.selectedGroupHoroscopeIndex]
let horoscopes = duplicate(game.settings.get("bol", "horoscope-group")) let horoscopes = foundry.utils.duplicate(game.settings.get("bol", "horoscope-group"))
let toChange = duplicate(horoscopes[horo.id]) let toChange = foundry.utils.duplicate(horoscopes[horo.id])
toChange.availableDice -= horo.nbDice // Remove the dice toChange.availableDice -= horo.nbDice // Remove the dice
if (toChange.availableDice <= 0) { if (toChange.availableDice <= 0) {
horoscopes[horo.id] = undefined horoscopes[horo.id] = undefined

View File

@ -189,6 +189,61 @@ BOL.vehicleSubtypes = {
// "other" : "BOL.equipmentCategory.other" // "other" : "BOL.equipmentCategory.other"
// } // }
BOL.rangeModifiers = {
"1": "BOL.dialog.pointblank",
"0": "BOL.dialog.close",
"-1": "BOL.dialog.medium",
"-2": "BOL.dialog.long",
"-4": "BOL.dialog.distant",
"-6": "BOL.dialog.extreme",
"-8": "BOL.dialog.utmost"
}
BOL.difficultyModifiers = {
"4": "BOL.dialog.soeasy",
"2": "BOL.dialog.veryeasy",
"1": "BOL.dialog.easy",
"0": "BOL.dialog.moderate",
"-1": "BOL.dialog.hard",
"-2": "BOL.dialog.tough",
"-4": "BOL.dialog.demanding",
"-6": "BOL.dialog.formidable",
"-8": "BOL.dialog.heroic",
"-10": "BOL.dialog.mythic",
"-12": "BOL.dialog.divine"
}
BOL.alchemyModifiers = {
"2": "BOL.dialog.veryeasy",
"1": "BOL.dialog.easy",
"0": "BOL.dialog.moderate",
"-1": "BOL.dialog.hard",
"-2": "BOL.dialog.tough",
"-4": "BOL.dialog.demanding",
"-6": "BOL.dialog.formidable",
"-8": "BOL.dialog.heroic",
}
BOL.spellModifiers = BOL.alchemyModifiers
BOL.spellMandatoryConditions = {
"1": "1",
"2": "2",
"3": "3",
"4": "4"
}
BOL.spellOptionnalConditions = {
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8"
}
BOL.effectIdentifiers = {
"always": "BOL.ui.always",
}
BOL.protectionCategories = { BOL.protectionCategories = {
"armor" : "BOL.protectionCategory.armor", "armor" : "BOL.protectionCategory.armor",
"shield" : "BOL.protectionCategory.shield", "shield" : "BOL.protectionCategory.shield",

View File

@ -137,6 +137,9 @@ export const registerHandlebarsHelpers = function () {
if (typeof text !== 'string') return text if (typeof text !== 'string') return text
return text.charAt(0).toUpperCase() return text.charAt(0).toUpperCase()
}) })
Handlebars.registerHelper('isCreature', function (key) {
return key == "creature" || key == "daemon";
})
} }

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000205 MANIFEST-000262

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.468570 7fe93be006c0 Recovering log #202 2024/04/26-11:56:58.161260 7f78fa0006c0 Recovering log #259
2024/02/22-16:41:06.479365 7fe93be006c0 Delete type=3 #200 2024/04/26-11:56:58.172348 7f78fa0006c0 Delete type=3 #257
2024/02/22-16:41:06.479415 7fe93be006c0 Delete type=0 #202 2024/04/26-11:56:58.172412 7f78fa0006c0 Delete type=0 #259
2024/02/22-17:53:02.235386 7fe9336006c0 Level-0 table #208: started 2024/04/26-14:04:50.930192 7f78f90006c0 Level-0 table #265: started
2024/02/22-17:53:02.235411 7fe9336006c0 Level-0 table #208: 0 bytes OK 2024/04/26-14:04:50.930219 7f78f90006c0 Level-0 table #265: 0 bytes OK
2024/02/22-17:53:02.241436 7fe9336006c0 Delete type=0 #206 2024/04/26-14:04:50.936493 7f78f90006c0 Delete type=0 #263
2024/02/22-17:53:02.248582 7fe9336006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.950259 7f78f90006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.254693 7fe9336006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.950292 7f78f90006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,15 @@
2024/02/22-14:31:16.140399 7f579ea006c0 Recovering log #198 2024/04/19-08:19:44.083034 7f94642006c0 Recovering log #255
2024/02/22-14:31:16.150043 7f579ea006c0 Delete type=3 #196 2024/04/19-08:19:44.095849 7f94642006c0 Delete type=3 #253
2024/02/22-14:31:16.150084 7f579ea006c0 Delete type=0 #198 2024/04/19-08:19:44.095950 7f94642006c0 Delete type=0 #255
2024/02/22-14:32:11.044698 7f57978006c0 Level-0 table #203: started 2024/04/19-08:30:00.016102 7f94632006c0 Level-0 table #260: started
2024/02/22-14:32:11.048686 7f57978006c0 Level-0 table #203: 27473 bytes OK 2024/04/19-08:30:00.020232 7f94632006c0 Level-0 table #260: 27751 bytes OK
2024/02/22-14:32:11.054909 7f57978006c0 Delete type=0 #201 2024/04/19-08:30:00.027004 7f94632006c0 Delete type=0 #258
2024/02/22-14:32:11.061518 7f57978006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end) 2024/04/19-08:30:00.027264 7f94632006c0 Manual compaction at level-0 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)
2024/02/22-14:32:11.072605 7f57978006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 135 : 1 2024/04/19-08:30:00.049736 7f94632006c0 Manual compaction at level-1 from '!journal!3xJg1rCxnWvEmoxS' @ 72057594037927935 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 159 : 1
2024/02/22-14:32:11.072621 7f57978006c0 Compacting 1@1 + 1@2 files 2024/04/19-08:30:00.049751 7f94632006c0 Compacting 1@1 + 1@2 files
2024/02/22-14:32:11.076934 7f57978006c0 Generated table #204@1: 24 keys, 27473 bytes 2024/04/19-08:30:00.054303 7f94632006c0 Generated table #261@1: 24 keys, 27751 bytes
2024/02/22-14:32:11.076952 7f57978006c0 Compacted 1@1 + 1@2 files => 27473 bytes 2024/04/19-08:30:00.054348 7f94632006c0 Compacted 1@1 + 1@2 files => 27751 bytes
2024/02/22-14:32:11.083387 7f57978006c0 compacted to: files[ 0 0 1 0 0 0 0 ] 2024/04/19-08:30:00.060656 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/02/22-14:32:11.083439 7f57978006c0 Delete type=2 #123 2024/04/19-08:30:00.060882 7f94632006c0 Delete type=2 #204
2024/02/22-14:32:11.083523 7f57978006c0 Delete type=2 #203 2024/04/19-08:30:00.061163 7f94632006c0 Delete type=2 #260
2024/02/22-14:32:11.102912 7f57978006c0 Manual compaction at level-1 from '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 135 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end) 2024/04/19-08:30:00.073152 7f94632006c0 Manual compaction at level-1 from '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 159 : 1 .. '!journal.pages!veAAxCtCKcFIsnln.0kUgZspxXO7VS8bd' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/armors/000167.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000111 MANIFEST-000168

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.445060 7fe93be006c0 Recovering log #108 2024/04/26-11:56:58.134706 7f78fbe006c0 Recovering log #165
2024/02/22-16:41:06.455322 7fe93be006c0 Delete type=3 #106 2024/04/26-11:56:58.144933 7f78fbe006c0 Delete type=3 #163
2024/02/22-16:41:06.455374 7fe93be006c0 Delete type=0 #108 2024/04/26-11:56:58.145031 7f78fbe006c0 Delete type=0 #165
2024/02/22-17:53:02.221672 7fe9336006c0 Level-0 table #114: started 2024/04/26-14:04:50.923546 7f78f90006c0 Level-0 table #171: started
2024/02/22-17:53:02.221690 7fe9336006c0 Level-0 table #114: 0 bytes OK 2024/04/26-14:04:50.923576 7f78f90006c0 Level-0 table #171: 0 bytes OK
2024/02/22-17:53:02.227776 7fe9336006c0 Delete type=0 #112 2024/04/26-14:04:50.930043 7f78f90006c0 Delete type=0 #169
2024/02/22-17:53:02.235369 7fe9336006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.950239 7f78f90006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.241521 7fe9336006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.950346 7f78f90006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,15 @@
2024/02/22-14:31:16.112569 7f579cc006c0 Recovering log #104 2024/04/19-08:19:44.050910 7f94656006c0 Recovering log #161
2024/02/22-14:31:16.124091 7f579cc006c0 Delete type=3 #102 2024/04/19-08:19:44.062747 7f94656006c0 Delete type=3 #159
2024/02/22-14:31:16.124185 7f579cc006c0 Delete type=0 #104 2024/04/19-08:19:44.062841 7f94656006c0 Delete type=0 #161
2024/02/22-14:32:11.013354 7f57978006c0 Level-0 table #109: started 2024/04/19-08:29:59.998576 7f94632006c0 Level-0 table #166: started
2024/02/22-14:32:11.017110 7f57978006c0 Level-0 table #109: 5473 bytes OK 2024/04/19-08:30:00.001989 7f94632006c0 Level-0 table #166: 5548 bytes OK
2024/02/22-14:32:11.023797 7f57978006c0 Delete type=0 #107 2024/04/19-08:30:00.008530 7f94632006c0 Delete type=0 #164
2024/02/22-14:32:11.023909 7f57978006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end) 2024/04/19-08:30:00.027235 7f94632006c0 Manual compaction at level-0 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)
2024/02/22-14:32:11.023925 7f57978006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at '!items!xhEcsi3WHjbt2ro9' @ 12 : 1 2024/04/19-08:30:00.038530 7f94632006c0 Manual compaction at level-1 from '!items!G3dZTHIabA3LA1hY' @ 72057594037927935 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at '!items!xhEcsi3WHjbt2ro9' @ 18 : 1
2024/02/22-14:32:11.023929 7f57978006c0 Compacting 1@1 + 1@2 files 2024/04/19-08:30:00.038547 7f94632006c0 Compacting 1@1 + 1@2 files
2024/02/22-14:32:11.027568 7f57978006c0 Generated table #110@1: 6 keys, 5473 bytes 2024/04/19-08:30:00.042082 7f94632006c0 Generated table #167@1: 6 keys, 5548 bytes
2024/02/22-14:32:11.027586 7f57978006c0 Compacted 1@1 + 1@2 files => 5473 bytes 2024/04/19-08:30:00.042108 7f94632006c0 Compacted 1@1 + 1@2 files => 5548 bytes
2024/02/22-14:32:11.034643 7f57978006c0 compacted to: files[ 0 0 1 0 0 0 0 ] 2024/04/19-08:30:00.048990 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/02/22-14:32:11.034802 7f57978006c0 Delete type=2 #5 2024/04/19-08:30:00.049179 7f94632006c0 Delete type=2 #110
2024/02/22-14:32:11.035014 7f57978006c0 Delete type=2 #109 2024/04/19-08:30:00.049479 7f94632006c0 Delete type=2 #166
2024/02/22-14:32:11.061498 7f57978006c0 Manual compaction at level-1 from '!items!xhEcsi3WHjbt2ro9' @ 12 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end) 2024/04/19-08:30:00.061357 7f94632006c0 Manual compaction at level-1 from '!items!xhEcsi3WHjbt2ro9' @ 18 : 1 .. '!items!xhEcsi3WHjbt2ro9' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/boons/000260.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000204 MANIFEST-000261

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.348365 7fe93be006c0 Recovering log #201 2024/04/26-11:56:58.024961 7f78fbe006c0 Recovering log #258
2024/02/22-16:41:06.358531 7fe93be006c0 Delete type=3 #199 2024/04/26-11:56:58.034823 7f78fbe006c0 Delete type=3 #256
2024/02/22-16:41:06.358629 7fe93be006c0 Delete type=0 #201 2024/04/26-11:56:58.034882 7f78fbe006c0 Delete type=0 #258
2024/02/22-17:53:02.169488 7fe9336006c0 Level-0 table #207: started 2024/04/26-14:04:50.869646 7f78f90006c0 Level-0 table #264: started
2024/02/22-17:53:02.169527 7fe9336006c0 Level-0 table #207: 0 bytes OK 2024/04/26-14:04:50.869694 7f78f90006c0 Level-0 table #264: 0 bytes OK
2024/02/22-17:53:02.176065 7fe9336006c0 Delete type=0 #205 2024/04/26-14:04:50.876074 7f78f90006c0 Delete type=0 #262
2024/02/22-17:53:02.182333 7fe9336006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.896825 7f78f90006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.189668 7fe9336006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.896897 7f78f90006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,15 @@
2024/02/22-14:31:15.997425 7f579cc006c0 Recovering log #197 2024/04/19-08:19:43.920264 7f94656006c0 Recovering log #254
2024/02/22-14:31:16.007207 7f579cc006c0 Delete type=3 #195 2024/04/19-08:19:43.932138 7f94656006c0 Delete type=3 #252
2024/02/22-14:31:16.007249 7f579cc006c0 Delete type=0 #197 2024/04/19-08:19:43.932303 7f94656006c0 Delete type=0 #254
2024/02/22-14:32:10.849842 7f57978006c0 Level-0 table #202: started 2024/04/19-08:29:59.809068 7f94632006c0 Level-0 table #259: started
2024/02/22-14:32:10.853163 7f57978006c0 Level-0 table #202: 17451 bytes OK 2024/04/19-08:29:59.813175 7f94632006c0 Level-0 table #259: 18151 bytes OK
2024/02/22-14:32:10.859412 7f57978006c0 Delete type=0 #200 2024/04/19-08:29:59.819452 7f94632006c0 Delete type=0 #257
2024/02/22-14:32:10.859542 7f57978006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end) 2024/04/19-08:29:59.851866 7f94632006c0 Manual compaction at level-0 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)
2024/02/22-14:32:10.859561 7f57978006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at '!items!zgspy1QKaxdEetEw' @ 177 : 1 2024/04/19-08:29:59.851973 7f94632006c0 Manual compaction at level-1 from '!items!039ZF3E3MtAGwbiX' @ 72057594037927935 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at '!items!zgspy1QKaxdEetEw' @ 236 : 1
2024/02/22-14:32:10.859565 7f57978006c0 Compacting 1@1 + 1@2 files 2024/04/19-08:29:59.851985 7f94632006c0 Compacting 1@1 + 1@2 files
2024/02/22-14:32:10.863528 7f57978006c0 Generated table #203@1: 59 keys, 17451 bytes 2024/04/19-08:29:59.856258 7f94632006c0 Generated table #260@1: 59 keys, 18151 bytes
2024/02/22-14:32:10.863540 7f57978006c0 Compacted 1@1 + 1@2 files => 17451 bytes 2024/04/19-08:29:59.856292 7f94632006c0 Compacted 1@1 + 1@2 files => 18151 bytes
2024/02/22-14:32:10.869463 7f57978006c0 compacted to: files[ 0 0 1 0 0 0 0 ] 2024/04/19-08:29:59.862772 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/02/22-14:32:10.869585 7f57978006c0 Delete type=2 #122 2024/04/19-08:29:59.862925 7f94632006c0 Delete type=2 #203
2024/02/22-14:32:10.869731 7f57978006c0 Delete type=2 #202 2024/04/19-08:29:59.863159 7f94632006c0 Delete type=2 #259
2024/02/22-14:32:10.900164 7f57978006c0 Manual compaction at level-1 from '!items!zgspy1QKaxdEetEw' @ 177 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end) 2024/04/19-08:29:59.896639 7f94632006c0 Manual compaction at level-1 from '!items!zgspy1QKaxdEetEw' @ 236 : 1 .. '!items!zgspy1QKaxdEetEw' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/boons/MANIFEST-000261 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000204 MANIFEST-000261

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.361202 7fe93b4006c0 Recovering log #201 2024/04/26-11:56:58.038384 7f78faa006c0 Recovering log #258
2024/02/22-16:41:06.371190 7fe93b4006c0 Delete type=3 #199 2024/04/26-11:56:58.049190 7f78faa006c0 Delete type=3 #256
2024/02/22-16:41:06.371241 7fe93b4006c0 Delete type=0 #201 2024/04/26-11:56:58.049324 7f78faa006c0 Delete type=0 #258
2024/02/22-17:53:02.176160 7fe9336006c0 Level-0 table #207: started 2024/04/26-14:04:50.890102 7f78f90006c0 Level-0 table #264: started
2024/02/22-17:53:02.176178 7fe9336006c0 Level-0 table #207: 0 bytes OK 2024/04/26-14:04:50.890126 7f78f90006c0 Level-0 table #264: 0 bytes OK
2024/02/22-17:53:02.182235 7fe9336006c0 Delete type=0 #205 2024/04/26-14:04:50.896657 7f78f90006c0 Delete type=0 #262
2024/02/22-17:53:02.189659 7fe9336006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.896882 7f78f90006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.195769 7fe9336006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.896947 7f78f90006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,15 @@
2024/02/22-14:31:16.011254 7f579d6006c0 Recovering log #197 2024/04/19-08:19:43.937500 7f9464c006c0 Recovering log #254
2024/02/22-14:31:16.021362 7f579d6006c0 Delete type=3 #195 2024/04/19-08:19:43.949011 7f9464c006c0 Delete type=3 #252
2024/02/22-14:31:16.021461 7f579d6006c0 Delete type=0 #197 2024/04/19-08:19:43.949130 7f9464c006c0 Delete type=0 #254
2024/02/22-14:32:10.869789 7f57978006c0 Level-0 table #202: started 2024/04/19-08:29:59.829996 7f94632006c0 Level-0 table #259: started
2024/02/22-14:32:10.872830 7f57978006c0 Level-0 table #202: 2250 bytes OK 2024/04/19-08:29:59.833757 7f94632006c0 Level-0 table #259: 2399 bytes OK
2024/02/22-14:32:10.879394 7f57978006c0 Delete type=0 #200 2024/04/19-08:29:59.840517 7f94632006c0 Delete type=0 #257
2024/02/22-14:32:10.900174 7f57978006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end) 2024/04/19-08:29:59.851922 7f94632006c0 Manual compaction at level-0 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)
2024/02/22-14:32:10.900203 7f57978006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at '!items!yofwG0YrsL902G77' @ 24 : 1 2024/04/19-08:29:59.873788 7f94632006c0 Manual compaction at level-1 from '!items!CoqlfsDV1gL5swbK' @ 72057594037927935 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at '!items!yofwG0YrsL902G77' @ 32 : 1
2024/02/22-14:32:10.900207 7f57978006c0 Compacting 1@1 + 1@2 files 2024/04/19-08:29:59.873804 7f94632006c0 Compacting 1@1 + 1@2 files
2024/02/22-14:32:10.903349 7f57978006c0 Generated table #203@1: 8 keys, 2250 bytes 2024/04/19-08:29:59.877246 7f94632006c0 Generated table #260@1: 8 keys, 2399 bytes
2024/02/22-14:32:10.903364 7f57978006c0 Compacted 1@1 + 1@2 files => 2250 bytes 2024/04/19-08:29:59.877287 7f94632006c0 Compacted 1@1 + 1@2 files => 2399 bytes
2024/02/22-14:32:10.910056 7f57978006c0 compacted to: files[ 0 0 1 0 0 0 0 ] 2024/04/19-08:29:59.884259 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/02/22-14:32:10.910155 7f57978006c0 Delete type=2 #122 2024/04/19-08:29:59.884426 7f94632006c0 Delete type=2 #203
2024/02/22-14:32:10.910250 7f57978006c0 Delete type=2 #202 2024/04/19-08:29:59.884735 7f94632006c0 Delete type=2 #259
2024/02/22-14:32:10.941750 7f57978006c0 Manual compaction at level-1 from '!items!yofwG0YrsL902G77' @ 24 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end) 2024/04/19-08:29:59.896671 7f94632006c0 Manual compaction at level-1 from '!items!yofwG0YrsL902G77' @ 32 : 1 .. '!items!yofwG0YrsL902G77' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/careers/000260.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000204 MANIFEST-000261

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.384861 7fe93b4006c0 Recovering log #201 2024/04/26-11:56:58.065626 7f78fb4006c0 Recovering log #258
2024/02/22-16:41:06.394497 7fe93b4006c0 Delete type=3 #199 2024/04/26-11:56:58.075327 7f78fb4006c0 Delete type=3 #256
2024/02/22-16:41:06.394553 7fe93b4006c0 Delete type=0 #201 2024/04/26-11:56:58.075454 7f78fb4006c0 Delete type=0 #258
2024/02/22-17:53:02.189676 7fe9336006c0 Level-0 table #207: started 2024/04/26-14:04:50.882862 7f78f90006c0 Level-0 table #264: started
2024/02/22-17:53:02.189695 7fe9336006c0 Level-0 table #207: 0 bytes OK 2024/04/26-14:04:50.882919 7f78f90006c0 Level-0 table #264: 0 bytes OK
2024/02/22-17:53:02.195654 7fe9336006c0 Delete type=0 #205 2024/04/26-14:04:50.889962 7f78f90006c0 Delete type=0 #262
2024/02/22-17:53:02.202740 7fe9336006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.896865 7f78f90006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.208765 7fe9336006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.896926 7f78f90006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,15 @@
2024/02/22-14:31:16.039637 7f579e0006c0 Recovering log #197 2024/04/19-08:19:43.969794 7f94660006c0 Recovering log #254
2024/02/22-14:31:16.049517 7f579e0006c0 Delete type=3 #195 2024/04/19-08:19:43.980384 7f94660006c0 Delete type=3 #252
2024/02/22-14:31:16.049566 7f579e0006c0 Delete type=0 #197 2024/04/19-08:19:43.980502 7f94660006c0 Delete type=0 #254
2024/02/22-14:32:10.888985 7f57978006c0 Level-0 table #202: started 2024/04/19-08:29:59.840760 7f94632006c0 Level-0 table #259: started
2024/02/22-14:32:10.893220 7f57978006c0 Level-0 table #202: 40745 bytes OK 2024/04/19-08:29:59.845225 7f94632006c0 Level-0 table #259: 41173 bytes OK
2024/02/22-14:32:10.900075 7f57978006c0 Delete type=0 #200 2024/04/19-08:29:59.851577 7f94632006c0 Delete type=0 #257
2024/02/22-14:32:10.900193 7f57978006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end) 2024/04/19-08:29:59.851940 7f94632006c0 Manual compaction at level-0 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)
2024/02/22-14:32:10.910312 7f57978006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at '!items!zxY3sW0iCJBvwjOS' @ 80 : 1 2024/04/19-08:29:59.884948 7f94632006c0 Manual compaction at level-1 from '!items!4S4xAfMXGnuU0O1a' @ 72057594037927935 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at '!items!zxY3sW0iCJBvwjOS' @ 107 : 1
2024/02/22-14:32:10.910319 7f57978006c0 Compacting 1@1 + 1@2 files 2024/04/19-08:29:59.884972 7f94632006c0 Compacting 1@1 + 1@2 files
2024/02/22-14:32:10.914342 7f57978006c0 Generated table #203@1: 27 keys, 40745 bytes 2024/04/19-08:29:59.889715 7f94632006c0 Generated table #260@1: 27 keys, 41173 bytes
2024/02/22-14:32:10.914365 7f57978006c0 Compacted 1@1 + 1@2 files => 40745 bytes 2024/04/19-08:29:59.889752 7f94632006c0 Compacted 1@1 + 1@2 files => 41173 bytes
2024/02/22-14:32:10.920398 7f57978006c0 compacted to: files[ 0 0 1 0 0 0 0 ] 2024/04/19-08:29:59.896200 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/02/22-14:32:10.920541 7f57978006c0 Delete type=2 #122 2024/04/19-08:29:59.896338 7f94632006c0 Delete type=2 #203
2024/02/22-14:32:10.920754 7f57978006c0 Delete type=2 #202 2024/04/19-08:29:59.896535 7f94632006c0 Delete type=2 #259
2024/02/22-14:32:10.941762 7f57978006c0 Manual compaction at level-1 from '!items!zxY3sW0iCJBvwjOS' @ 80 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end) 2024/04/19-08:29:59.896685 7f94632006c0 Manual compaction at level-1 from '!items!zxY3sW0iCJBvwjOS' @ 107 : 1 .. '!items!zxY3sW0iCJBvwjOS' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000203 MANIFEST-000259

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.482269 7fe93b4006c0 Recovering log #201 2024/04/26-11:56:58.176077 7f78fb4006c0 Recovering log #257
2024/02/22-16:41:06.491825 7fe93b4006c0 Delete type=3 #199 2024/04/26-11:56:58.186350 7f78fb4006c0 Delete type=3 #255
2024/02/22-16:41:06.491889 7fe93b4006c0 Delete type=0 #201 2024/04/26-11:56:58.186407 7f78fb4006c0 Delete type=0 #257
2024/02/22-17:53:02.241528 7fe9336006c0 Level-0 table #206: started 2024/04/26-14:04:50.943258 7f78f90006c0 Level-0 table #262: started
2024/02/22-17:53:02.241546 7fe9336006c0 Level-0 table #206: 0 bytes OK 2024/04/26-14:04:50.943288 7f78f90006c0 Level-0 table #262: 0 bytes OK
2024/02/22-17:53:02.248276 7fe9336006c0 Delete type=0 #204 2024/04/26-14:04:50.950031 7f78f90006c0 Delete type=0 #260
2024/02/22-17:53:02.254684 7fe9336006c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.950283 7f78f90006c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.261049 7fe9336006c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.950309 7f78f90006c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/22-14:31:16.154232 7f579e0006c0 Recovering log #197 2024/04/19-08:19:44.103925 7f94660006c0 Recovering log #253
2024/02/22-14:31:16.226544 7f579e0006c0 Delete type=3 #195 2024/04/19-08:19:44.147003 7f94660006c0 Delete type=3 #251
2024/02/22-14:31:16.226812 7f579e0006c0 Delete type=0 #197 2024/04/19-08:19:44.147169 7f94660006c0 Delete type=0 #253
2024/02/22-14:32:11.055002 7f57978006c0 Level-0 table #202: started 2024/04/19-08:30:00.008693 7f94632006c0 Level-0 table #258: started
2024/02/22-14:32:11.055021 7f57978006c0 Level-0 table #202: 0 bytes OK 2024/04/19-08:30:00.008732 7f94632006c0 Level-0 table #258: 0 bytes OK
2024/02/22-14:32:11.061406 7f57978006c0 Delete type=0 #200 2024/04/19-08:30:00.015925 7f94632006c0 Delete type=0 #256
2024/02/22-14:32:11.061530 7f57978006c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end) 2024/04/19-08:30:00.027251 7f94632006c0 Manual compaction at level-0 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)
2024/02/22-14:32:11.072558 7f57978006c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end) 2024/04/19-08:30:00.049675 7f94632006c0 Manual compaction at level-1 from '!scenes!1ZDXKpKixS12xzW3' @ 72057594037927935 : 1 .. '!scenes.tiles!78gEyXvSfBJi9iL1.rJglQmZXB0eRIL8y' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000204 MANIFEST-000208

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.582756 7fe93be006c0 Recovering log #201 2024/02/23-23:05:36.345111 7fe93a0006c0 Recovering log #206
2024/02/22-16:41:06.592273 7fe93be006c0 Delete type=3 #199 2024/02/23-23:05:36.355350 7fe93a0006c0 Delete type=3 #204
2024/02/22-16:41:06.592326 7fe93be006c0 Delete type=0 #201 2024/02/23-23:05:36.355397 7fe93a0006c0 Delete type=0 #206
2024/02/22-17:53:02.294923 7fe9336006c0 Level-0 table #207: started 2024/02/23-23:11:16.411887 7fe9336006c0 Level-0 table #211: started
2024/02/22-17:53:02.294959 7fe9336006c0 Level-0 table #207: 0 bytes OK 2024/02/23-23:11:16.411923 7fe9336006c0 Level-0 table #211: 0 bytes OK
2024/02/22-17:53:02.313594 7fe9336006c0 Delete type=0 #205 2024/02/23-23:11:16.418695 7fe9336006c0 Delete type=0 #209
2024/02/22-17:53:02.322132 7fe9336006c0 Manual compaction at level-0 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end) 2024/02/23-23:11:16.419070 7fe9336006c0 Manual compaction at level-0 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.322180 7fe9336006c0 Manual compaction at level-1 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end) 2024/02/23-23:11:16.419088 7fe9336006c0 Manual compaction at level-1 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2024/02/22-14:31:16.330447 7f579d6006c0 Recovering log #197 2024/02/22-16:41:06.582756 7fe93be006c0 Recovering log #201
2024/02/22-14:31:16.340934 7f579d6006c0 Delete type=3 #195 2024/02/22-16:41:06.592273 7fe93be006c0 Delete type=3 #199
2024/02/22-14:31:16.341032 7f579d6006c0 Delete type=0 #197 2024/02/22-16:41:06.592326 7fe93be006c0 Delete type=0 #201
2024/02/22-14:32:11.202876 7f57978006c0 Level-0 table #202: started 2024/02/22-17:53:02.294923 7fe9336006c0 Level-0 table #207: started
2024/02/22-14:32:11.206797 7f57978006c0 Level-0 table #202: 101451 bytes OK 2024/02/22-17:53:02.294959 7fe9336006c0 Level-0 table #207: 0 bytes OK
2024/02/22-14:32:11.212718 7f57978006c0 Delete type=0 #200 2024/02/22-17:53:02.313594 7fe9336006c0 Delete type=0 #205
2024/02/22-14:32:11.233384 7f57978006c0 Manual compaction at level-0 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end) 2024/02/22-17:53:02.322132 7fe9336006c0 Manual compaction at level-0 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)
2024/02/22-14:32:11.233434 7f57978006c0 Manual compaction at level-1 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 462 : 1 2024/02/22-17:53:02.322180 7fe9336006c0 Manual compaction at level-1 from '!actors!1QGaindSWLCT4QXD' @ 72057594037927935 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)
2024/02/22-14:32:11.233439 7f57978006c0 Compacting 1@1 + 1@2 files
2024/02/22-14:32:11.238262 7f57978006c0 Generated table #203@1: 155 keys, 101451 bytes
2024/02/22-14:32:11.238276 7f57978006c0 Compacted 1@1 + 1@2 files => 101451 bytes
2024/02/22-14:32:11.244199 7f57978006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/02/22-14:32:11.244258 7f57978006c0 Delete type=2 #122
2024/02/22-14:32:11.244363 7f57978006c0 Delete type=2 #202
2024/02/22-14:32:11.244817 7f57978006c0 Manual compaction at level-1 from '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 462 : 1 .. '!actors.items!yGlDTCiMiaH4vJTH.mvXGkWoCcRGjUpYV' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000203 MANIFEST-000260

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.570946 7fe93b4006c0 Recovering log #200 2024/04/26-11:56:58.274057 7f78fbe006c0 Recovering log #257
2024/02/22-16:41:06.580979 7fe93b4006c0 Delete type=3 #198 2024/04/26-11:56:58.285249 7f78fbe006c0 Delete type=3 #255
2024/02/22-16:41:06.581036 7fe93b4006c0 Delete type=0 #200 2024/04/26-11:56:58.285383 7f78fbe006c0 Delete type=0 #257
2024/02/22-17:53:02.288073 7fe9336006c0 Level-0 table #206: started 2024/04/26-14:04:50.977171 7f78f90006c0 Level-0 table #263: started
2024/02/22-17:53:02.288100 7fe9336006c0 Level-0 table #206: 0 bytes OK 2024/04/26-14:04:50.977197 7f78f90006c0 Level-0 table #263: 0 bytes OK
2024/02/22-17:53:02.294740 7fe9336006c0 Delete type=0 #204 2024/04/26-14:04:50.984422 7f78f90006c0 Delete type=0 #261
2024/02/22-17:53:02.313705 7fe9336006c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end) 2024/04/26-14:04:51.009734 7f78f90006c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.322143 7fe9336006c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end) 2024/04/26-14:04:51.009781 7f78f90006c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,15 @@
2024/02/22-14:31:16.317419 7f579cc006c0 Recovering log #196 2024/04/19-08:19:44.259456 7f94656006c0 Recovering log #253
2024/02/22-14:31:16.326922 7f579cc006c0 Delete type=3 #194 2024/04/19-08:19:44.271045 7f94656006c0 Delete type=3 #251
2024/02/22-14:31:16.326972 7f579cc006c0 Delete type=0 #196 2024/04/19-08:19:44.271171 7f94656006c0 Delete type=0 #253
2024/02/22-14:32:11.182318 7f57978006c0 Level-0 table #201: started 2024/04/19-08:30:00.174557 7f94632006c0 Level-0 table #258: started
2024/02/22-14:32:11.186183 7f57978006c0 Level-0 table #201: 948 bytes OK 2024/04/19-08:30:00.178272 7f94632006c0 Level-0 table #258: 995 bytes OK
2024/02/22-14:32:11.192150 7f57978006c0 Delete type=0 #199 2024/04/19-08:30:00.184949 7f94632006c0 Delete type=0 #256
2024/02/22-14:32:11.202867 7f57978006c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end) 2024/04/19-08:30:00.196844 7f94632006c0 Manual compaction at level-0 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)
2024/02/22-14:32:11.212862 7f57978006c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at '!items!zwSNMO9HpiqUCMt8' @ 8 : 1 2024/04/19-08:30:00.219861 7f94632006c0 Manual compaction at level-1 from '!items!6fTZ6hOKR4pWbWOe' @ 72057594037927935 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at '!items!zwSNMO9HpiqUCMt8' @ 12 : 1
2024/02/22-14:32:11.212871 7f57978006c0 Compacting 1@1 + 1@2 files 2024/04/19-08:30:00.219880 7f94632006c0 Compacting 1@1 + 1@2 files
2024/02/22-14:32:11.216760 7f57978006c0 Generated table #202@1: 4 keys, 948 bytes 2024/04/19-08:30:00.223286 7f94632006c0 Generated table #259@1: 4 keys, 995 bytes
2024/02/22-14:32:11.216782 7f57978006c0 Compacted 1@1 + 1@2 files => 948 bytes 2024/04/19-08:30:00.223305 7f94632006c0 Compacted 1@1 + 1@2 files => 995 bytes
2024/02/22-14:32:11.222868 7f57978006c0 compacted to: files[ 0 0 1 0 0 0 0 ] 2024/04/19-08:30:00.230007 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/02/22-14:32:11.223009 7f57978006c0 Delete type=2 #5 2024/04/19-08:30:00.230147 7f94632006c0 Delete type=2 #202
2024/02/22-14:32:11.223160 7f57978006c0 Delete type=2 #201 2024/04/19-08:30:00.230383 7f94632006c0 Delete type=2 #258
2024/02/22-14:32:11.233394 7f57978006c0 Manual compaction at level-1 from '!items!zwSNMO9HpiqUCMt8' @ 8 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end) 2024/04/19-08:30:00.242012 7f94632006c0 Manual compaction at level-1 from '!items!zwSNMO9HpiqUCMt8' @ 12 : 1 .. '!items!zwSNMO9HpiqUCMt8' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/equipment/000261.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000205 MANIFEST-000262

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.421072 7fe93be006c0 Recovering log #202 2024/04/26-11:56:58.107651 7f78fa0006c0 Recovering log #259
2024/02/22-16:41:06.430819 7fe93be006c0 Delete type=3 #200 2024/04/26-11:56:58.117467 7f78fa0006c0 Delete type=3 #257
2024/02/22-16:41:06.430872 7fe93be006c0 Delete type=0 #202 2024/04/26-11:56:58.117610 7f78fa0006c0 Delete type=0 #259
2024/02/22-17:53:02.208772 7fe9336006c0 Level-0 table #208: started 2024/04/26-14:04:50.910072 7f78f90006c0 Level-0 table #265: started
2024/02/22-17:53:02.208792 7fe9336006c0 Level-0 table #208: 0 bytes OK 2024/04/26-14:04:50.910098 7f78f90006c0 Level-0 table #265: 0 bytes OK
2024/02/22-17:53:02.215001 7fe9336006c0 Delete type=0 #206 2024/04/26-14:04:50.916483 7f78f90006c0 Delete type=0 #263
2024/02/22-17:53:02.221655 7fe9336006c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.923413 7f78f90006c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.227875 7fe9336006c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.923450 7f78f90006c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,15 @@
2024/02/22-14:31:16.081714 7f579ea006c0 Recovering log #198 2024/04/19-08:19:44.019625 7f94642006c0 Recovering log #255
2024/02/22-14:31:16.092084 7f579ea006c0 Delete type=3 #196 2024/04/19-08:19:44.030373 7f94642006c0 Delete type=3 #253
2024/02/22-14:31:16.092130 7f579ea006c0 Delete type=0 #198 2024/04/19-08:19:44.030526 7f94642006c0 Delete type=0 #255
2024/02/22-14:32:10.962413 7f57978006c0 Level-0 table #203: started 2024/04/19-08:29:59.918387 7f94632006c0 Level-0 table #260: started
2024/02/22-14:32:10.966000 7f57978006c0 Level-0 table #203: 10867 bytes OK 2024/04/19-08:29:59.922021 7f94632006c0 Level-0 table #260: 11238 bytes OK
2024/02/22-14:32:10.972091 7f57978006c0 Delete type=0 #201 2024/04/19-08:29:59.928489 7f94632006c0 Delete type=0 #258
2024/02/22-14:32:10.983175 7f57978006c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end) 2024/04/19-08:29:59.940377 7f94632006c0 Manual compaction at level-0 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end)
2024/02/22-14:32:10.983209 7f57978006c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at '!items!yE8UH6YAgNGjKDEu' @ 284 : 1 2024/04/19-08:29:59.962979 7f94632006c0 Manual compaction at level-1 from '!items!0ErhyqifZLDCmMfT' @ 72057594037927935 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at '!items!yE8UH6YAgNGjKDEu' @ 327 : 1
2024/02/22-14:32:10.983214 7f57978006c0 Compacting 1@1 + 1@2 files 2024/04/19-08:29:59.962990 7f94632006c0 Compacting 1@1 + 1@2 files
2024/02/22-14:32:10.986425 7f57978006c0 Generated table #204@1: 43 keys, 10867 bytes 2024/04/19-08:29:59.966809 7f94632006c0 Generated table #261@1: 43 keys, 11238 bytes
2024/02/22-14:32:10.986441 7f57978006c0 Compacted 1@1 + 1@2 files => 10867 bytes 2024/04/19-08:29:59.966843 7f94632006c0 Compacted 1@1 + 1@2 files => 11238 bytes
2024/02/22-14:32:10.992405 7f57978006c0 compacted to: files[ 0 0 1 0 0 0 0 ] 2024/04/19-08:29:59.974600 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/02/22-14:32:10.992579 7f57978006c0 Delete type=2 #99 2024/04/19-08:29:59.974784 7f94632006c0 Delete type=2 #204
2024/02/22-14:32:10.992839 7f57978006c0 Delete type=2 #203 2024/04/19-08:29:59.975112 7f94632006c0 Delete type=2 #260
2024/02/22-14:32:11.023883 7f57978006c0 Manual compaction at level-1 from '!items!yE8UH6YAgNGjKDEu' @ 284 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 0 : 0; will stop at (end) 2024/04/19-08:29:59.986927 7f94632006c0 Manual compaction at level-1 from '!items!yE8UH6YAgNGjKDEu' @ 327 : 1 .. '!items!yE8UH6YAgNGjKDEu' @ 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-000203 MANIFEST-000260

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.534424 7fe93be006c0 Recovering log #200 2024/04/26-11:56:58.234275 7f78faa006c0 Recovering log #257
2024/02/22-16:41:06.544253 7fe93be006c0 Delete type=3 #198 2024/04/26-11:56:58.244632 7f78faa006c0 Delete type=3 #255
2024/02/22-16:41:06.544346 7fe93be006c0 Delete type=0 #200 2024/04/26-11:56:58.244781 7f78faa006c0 Delete type=0 #257
2024/02/22-17:53:02.274043 7fe9336006c0 Level-0 table #206: started 2024/04/26-14:04:50.963407 7f78f90006c0 Level-0 table #263: started
2024/02/22-17:53:02.274079 7fe9336006c0 Level-0 table #206: 0 bytes OK 2024/04/26-14:04:50.963434 7f78f90006c0 Level-0 table #263: 0 bytes OK
2024/02/22-17:53:02.281833 7fe9336006c0 Delete type=0 #204 2024/04/26-14:04:50.970529 7f78f90006c0 Delete type=0 #261
2024/02/22-17:53:02.288052 7fe9336006c0 Manual compaction at level-0 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.977009 7f78f90006c0 Manual compaction at level-0 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.294910 7fe9336006c0 Manual compaction at level-1 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.977040 7f78f90006c0 Manual compaction at level-1 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,15 @@
2024/02/22-14:31:16.273721 7f579d6006c0 Recovering log #196 2024/04/19-08:19:44.212596 7f9464c006c0 Recovering log #253
2024/02/22-14:31:16.283269 7f579d6006c0 Delete type=3 #194 2024/04/19-08:19:44.224303 7f9464c006c0 Delete type=3 #251
2024/02/22-14:31:16.283310 7f579d6006c0 Delete type=0 #196 2024/04/19-08:19:44.224391 7f9464c006c0 Delete type=0 #253
2024/02/22-14:32:11.151347 7f57978006c0 Level-0 table #201: started 2024/04/19-08:30:00.095765 7f94632006c0 Level-0 table #258: started
2024/02/22-14:32:11.154683 7f57978006c0 Level-0 table #201: 15373 bytes OK 2024/04/19-08:30:00.099582 7f94632006c0 Level-0 table #258: 15776 bytes OK
2024/02/22-14:32:11.160739 7f57978006c0 Delete type=0 #199 2024/04/19-08:30:00.107187 7f94632006c0 Delete type=0 #256
2024/02/22-14:32:11.182309 7f57978006c0 Manual compaction at level-0 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end) 2024/04/19-08:30:00.118151 7f94632006c0 Manual compaction at level-0 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)
2024/02/22-14:32:11.192298 7f57978006c0 Manual compaction at level-1 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at '!items!vGydqADwTsHZ9B3j' @ 60 : 1 2024/04/19-08:30:00.140008 7f94632006c0 Manual compaction at level-1 from '!items!4EmWdK1cv7EX0X3E' @ 72057594037927935 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at '!items!vGydqADwTsHZ9B3j' @ 90 : 1
2024/02/22-14:32:11.192304 7f57978006c0 Compacting 1@1 + 1@2 files 2024/04/19-08:30:00.140020 7f94632006c0 Compacting 1@1 + 1@2 files
2024/02/22-14:32:11.195592 7f57978006c0 Generated table #202@1: 30 keys, 15373 bytes 2024/04/19-08:30:00.144757 7f94632006c0 Generated table #259@1: 30 keys, 15776 bytes
2024/02/22-14:32:11.195617 7f57978006c0 Compacted 1@1 + 1@2 files => 15373 bytes 2024/04/19-08:30:00.144786 7f94632006c0 Compacted 1@1 + 1@2 files => 15776 bytes
2024/02/22-14:32:11.202434 7f57978006c0 compacted to: files[ 0 0 1 0 0 0 0 ] 2024/04/19-08:30:00.151053 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/02/22-14:32:11.202698 7f57978006c0 Delete type=2 #5 2024/04/19-08:30:00.151191 7f94632006c0 Delete type=2 #202
2024/02/22-14:32:11.202793 7f57978006c0 Delete type=2 #201 2024/04/19-08:30:00.151438 7f94632006c0 Delete type=2 #258
2024/02/22-14:32:11.212848 7f57978006c0 Manual compaction at level-1 from '!items!vGydqADwTsHZ9B3j' @ 60 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end) 2024/04/19-08:30:00.163491 7f94632006c0 Manual compaction at level-1 from '!items!vGydqADwTsHZ9B3j' @ 90 : 1 .. '!items!vGydqADwTsHZ9B3j' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/flaws/000260.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000204 MANIFEST-000261

View File

@ -1,8 +1,8 @@
2024/02/22-16:41:06.373005 7fe93be006c0 Recovering log #201 2024/04/26-11:56:58.051636 7f78fa0006c0 Recovering log #258
2024/02/22-16:41:06.382797 7fe93be006c0 Delete type=3 #199 2024/04/26-11:56:58.062318 7f78fa0006c0 Delete type=3 #256
2024/02/22-16:41:06.382849 7fe93be006c0 Delete type=0 #201 2024/04/26-11:56:58.062380 7f78fa0006c0 Delete type=0 #258
2024/02/22-17:53:02.182351 7fe9336006c0 Level-0 table #207: started 2024/04/26-14:04:50.876162 7f78f90006c0 Level-0 table #264: started
2024/02/22-17:53:02.182372 7fe9336006c0 Level-0 table #207: 0 bytes OK 2024/04/26-14:04:50.876184 7f78f90006c0 Level-0 table #264: 0 bytes OK
2024/02/22-17:53:02.189564 7fe9336006c0 Delete type=0 #205 2024/04/26-14:04:50.882655 7f78f90006c0 Delete type=0 #262
2024/02/22-17:53:02.195760 7fe9336006c0 Manual compaction at level-0 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.896848 7f78f90006c0 Manual compaction at level-0 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)
2024/02/22-17:53:02.202750 7fe9336006c0 Manual compaction at level-1 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end) 2024/04/26-14:04:50.896911 7f78f90006c0 Manual compaction at level-1 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,15 @@
2024/02/22-14:31:16.025182 7f579ea006c0 Recovering log #197 2024/04/19-08:19:43.953346 7f94642006c0 Recovering log #254
2024/02/22-14:31:16.035699 7f579ea006c0 Delete type=3 #195 2024/04/19-08:19:43.965323 7f94642006c0 Delete type=3 #252
2024/02/22-14:31:16.035837 7f579ea006c0 Delete type=0 #197 2024/04/19-08:19:43.965489 7f94642006c0 Delete type=0 #254
2024/02/22-14:32:10.879482 7f57978006c0 Level-0 table #202: started 2024/04/19-08:29:59.819633 7f94632006c0 Level-0 table #259: started
2024/02/22-14:32:10.882875 7f57978006c0 Level-0 table #202: 14027 bytes OK 2024/04/19-08:29:59.823376 7f94632006c0 Level-0 table #259: 14380 bytes OK
2024/02/22-14:32:10.888891 7f57978006c0 Delete type=0 #200 2024/04/19-08:29:59.829694 7f94632006c0 Delete type=0 #257
2024/02/22-14:32:10.900184 7f57978006c0 Manual compaction at level-0 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end) 2024/04/19-08:29:59.851902 7f94632006c0 Manual compaction at level-0 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)
2024/02/22-14:32:10.920923 7f57978006c0 Manual compaction at level-1 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at '!items!znd0K3b7HzYpdehs' @ 129 : 1 2024/04/19-08:29:59.863264 7f94632006c0 Manual compaction at level-1 from '!items!0wCqg1UpGd50uJrS' @ 72057594037927935 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at '!items!znd0K3b7HzYpdehs' @ 172 : 1
2024/02/22-14:32:10.920938 7f57978006c0 Compacting 1@1 + 1@2 files 2024/04/19-08:29:59.863275 7f94632006c0 Compacting 1@1 + 1@2 files
2024/02/22-14:32:10.924879 7f57978006c0 Generated table #203@1: 43 keys, 14027 bytes 2024/04/19-08:29:59.867164 7f94632006c0 Generated table #260@1: 43 keys, 14380 bytes
2024/02/22-14:32:10.924887 7f57978006c0 Compacted 1@1 + 1@2 files => 14027 bytes 2024/04/19-08:29:59.867194 7f94632006c0 Compacted 1@1 + 1@2 files => 14380 bytes
2024/02/22-14:32:10.931704 7f57978006c0 compacted to: files[ 0 0 1 0 0 0 0 ] 2024/04/19-08:29:59.873334 7f94632006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/02/22-14:32:10.931855 7f57978006c0 Delete type=2 #122 2024/04/19-08:29:59.873477 7f94632006c0 Delete type=2 #203
2024/02/22-14:32:10.931953 7f57978006c0 Delete type=2 #202 2024/04/19-08:29:59.873667 7f94632006c0 Delete type=2 #259
2024/02/22-14:32:10.941776 7f57978006c0 Manual compaction at level-1 from '!items!znd0K3b7HzYpdehs' @ 129 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end) 2024/04/19-08:29:59.896655 7f94632006c0 Manual compaction at level-1 from '!items!znd0K3b7HzYpdehs' @ 172 : 1 .. '!items!znd0K3b7HzYpdehs' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/flaws/MANIFEST-000261 Normal file

Binary file not shown.

Binary file not shown.

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