Compare commits

...

16 Commits

160 changed files with 1565 additions and 641 deletions

View File

@ -1,11 +1,14 @@
# Système Foundry pour Wasteland (French RPG, Titam France/Sombres Projets)
Système Foundry pour Wasteland (French RPG, Titam France/Sombres Projets)
## EN
Unofficial system for Wasteland (French version from Titam France).
Unofficial system for Wasteland (French RPG from Titam France).
Books are mandatory to play and are available at : http://www.titam-france.fr
`![alt text](https://www.lahiette.com/leratierbretonnien/wp-content/uploads/2024/01/screenshot-wasteland-01.webp "Wasteland")`
## FR
Système non-officiel pour le JDR Wasteland (Titam France).
@ -16,8 +19,9 @@ Les livres du jeu sont nécessaires pour jouer, et sont disponibles ici : http:/
# Credits
Wasteland, le jeu de rôle de Sword & Sorcery, is a property of Titam France/Sombres Projets.
Wasteland is a property of Titam France/Sombres Projets.
# Developmement
LeRatierBretonnien
Code, CSS and automations : LeRatierBretonnien
Compendiums : Pretre, LeRatierBretonnien

BIN
assets/icons/don.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
assets/icons/hubris.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

8
changelog.md Normal file
View File

@ -0,0 +1,8 @@
# 12.0.1
- Fix v12 version
# 11.0.22
- Version initiale
-

View File

@ -1,24 +1,25 @@
{
"ACTOR": {
"TypePersonnage": "Personnage",
"TypePNJ": "PNJ"
},
"ITEM": {
"TypeArme": "Arme",
"TypeCompetence": "Compétence",
"TypeProtection": "Protection",
"TypeMonnaie": "Monnaie",
"TypeEquipement": "Equipement",
"TypeCapacite": "Capacité",
"TypeOrigine": "Origine",
"TypeHeritage": "Héritage",
"TypeMetier": "Métier",
"TypeBouclier": "Bouclier",
"TypePouvoir": "Pouvoir",
"TypeArtifex": "Artifex",
"TypeMutation": "Mutation",
"TypeCharme": "Charme",
"TypePeuple": "Peuple"
{
"TYPES": {
"Item": {
"arme": "Arme",
"competence": "Compétence",
"protection": "Protection",
"monnaie": "Monnaie",
"equipement": "Equipement",
"capacite": "Capacité",
"origine": "Origine",
"heritage": "Héritage",
"metier": "Métier",
"bouclier": "Bouclier",
"pouvoir": "Pouvoir",
"artifex": "Artifex",
"mutation": "Mutation",
"charme": "Charme",
"peuple": "Peuple"
},
"Actor": {
"personnage": "Personnage",
"pnj": "PNJ"
}
}
}

View File

@ -7,12 +7,12 @@ import { WastelandUtility } from "./wasteland-utility.js";
import { WastelandRollDialog } from "./wasteland-roll-dialog.js";
/* -------------------------------------------- */
export class WastelandActorSheet extends ActorSheet {
export class WastelandActorSheet extends foundry.appv1.sheets.ActorSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-wasteland", "sheet", "actor"],
template: "systems/fvtt-wasteland/templates/actor-sheet.html",
width: 640,
@ -25,8 +25,8 @@ export class WastelandActorSheet extends ActorSheet {
/* -------------------------------------------- */
async getData() {
const objectData = duplicate(this.object)
let actorData = objectData
const objectData = foundry.utils.duplicate(this.object)
let actorData = objectData
let formData = {
title: this.title,
@ -40,24 +40,32 @@ export class WastelandActorSheet extends ActorSheet {
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
limited: this.object.limited,
skills: this.actor.getSkills(),
armes: duplicate(this.actor.getWeapons()),
protections: duplicate(this.actor.getArmors()),
pouvoirs:duplicate(this.actor.getPouvoirs()),
tours:duplicate(this.actor.getTours()),
artifex: duplicate(this.actor.getArtifex()),
charmes:duplicate(this.actor.getCharmes()),
origine: duplicate(this.actor.getOrigine() || {}),
heritage: duplicate(this.actor.getHeritage() || {}),
metier: duplicate(this.actor.getMetier() || {}),
combat: this.actor.getCombatValues(),
config: duplicate(game.system.wasteland.config),
equipements: duplicate(this.actor.getEquipments()),
monnaies: duplicate(this.actor.getMonnaies()),
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
armes: foundry.utils.duplicate(this.actor.getWeapons()),
protections: foundry.utils.duplicate(this.actor.getArmors()),
pouvoirs:foundry.utils.duplicate(this.actor.getPouvoirs()),
dons: foundry.utils.duplicate(this.actor.getDons()),
hubrises: foundry.utils.duplicate(this.actor.getHubris()),
tours:foundry.utils.duplicate(this.actor.getTours()),
artifex: foundry.utils.duplicate(this.actor.getArtifex()),
charmes:foundry.utils.duplicate(this.actor.getCharmes()),
peuple: foundry.utils.duplicate(this.actor.getPeuple() || {}),
origine: foundry.utils.duplicate(this.actor.getOrigine() || {}),
heritage: foundry.utils.duplicate(this.actor.getHeritage() || {}),
metier: foundry.utils.duplicate(this.actor.getMetier() || {}),
combat: this.actor.getCombatValues(),
config: foundry.utils.duplicate(game.system.wasteland.config),
capacites: foundry.utils.duplicate(this.actor.getCapacites()),
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
mutations: foundry.utils.duplicate(this.actor.getMutations()),
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, {async: true}),
comportement: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.comportement, {async: true}),
habitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.habitat, {async: true}),
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,
isGM: game.user.isGM
isGM: game.user.isGM,
config: game.system.wasteland.config
}
this.formData = formData;
@ -65,7 +73,7 @@ export class WastelandActorSheet extends ActorSheet {
return formData;
}
/* -------------------------------------------- */
/** @override */
activateListeners(html) {
@ -73,14 +81,14 @@ export class WastelandActorSheet extends ActorSheet {
// Everything below here is only needed if the sheet is editable
if (!this.options.editable) return;
// Update Inventory Item
html.find('.item-edit').click(ev => {
const li = $(ev.currentTarget).parents(".item")
let itemId = li.data("item-id")
const item = this.actor.items.get( itemId )
item.sheet.render(true)
})
})
// Delete Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
@ -95,7 +103,7 @@ export class WastelandActorSheet extends ActorSheet {
let value = ev.currentTarget.value
this.actor.editItemField(itemId, itemType, itemField, dataType, value)
})
html.find('.quantity-minus').click(event => {
const li = $(event.currentTarget).parents(".item");
this.actor.incDecQuantity( li.data("item-id"), -1 );
@ -121,7 +129,7 @@ export class WastelandActorSheet extends ActorSheet {
let charmeId = li.data("item-id")
this.actor.rollCharme(charmeId)
})
html.find('.roll-pouvoir').click((event) => {
const li = $(event.currentTarget).parents(".item")
let pouvoirId = li.data("item-id")
@ -147,19 +155,19 @@ export class WastelandActorSheet extends ActorSheet {
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
})
html.find('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore;
this.render(true);
});
});
html.find('.item-equip').click(ev => {
const li = $(ev.currentTarget).parents(".item");
this.actor.equipItem( li.data("item-id") );
this.render(true);
this.render(true);
});
}
/* -------------------------------------------- */
/** @override */
setPosition(options = {}) {

View File

@ -37,11 +37,12 @@ export class WastelandActor extends Actor {
return actor;
}
const skills = await WastelandUtility.loadCompendium("fvtt-wasteland.skills")
if (data.type == 'personnage') {
const skills = await WastelandUtility.loadCompendium("fvtt-wasteland.skills")
data.items = skills.map(i => i.toObject())
}
if (data.type == 'pnj') {
if (data.type == 'creature') {
data.items = skills.filter(i=>i.name.toLowerCase().includes("mêlée")).map(i => i.toObject())
}
return super.create(data, options);
@ -49,10 +50,10 @@ export class WastelandActor extends Actor {
/* -------------------------------------------- */
prepareArme(arme) {
arme = duplicate(arme)
arme = foundry.utils.duplicate(arme)
let combat = this.getCombatValues()
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
arme.system.attrKey = "pui"
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
@ -61,7 +62,7 @@ export class WastelandActor extends Actor {
}
}
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") {
arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
arme.system.attrKey = "adr"
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
arme.system.totalDegats = arme.system.degats
@ -73,9 +74,9 @@ export class WastelandActor extends Actor {
}
/* -------------------------------------------- */
prepareBouclier(bouclier) {
bouclier = duplicate(bouclier)
bouclier = foundry.utils.duplicate(bouclier)
let combat = this.getCombatValues()
bouclier.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
bouclier.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
bouclier.system.attrKey = "pui"
bouclier.system.totalDegats = bouclier.system.degats + "+" + combat.bonusDegatsTotal
bouclier.system.totalOffensif = this.system.attributs.pui.value + bouclier.system.competence.system.niveau
@ -119,18 +120,33 @@ export class WastelandActor extends Actor {
getArtifex() {
return this.getItemSorted(["artifex"])
}
getCapacites() {
return this.getItemSorted(["capacite"])
}
getPouvoirs() {
return this.getItemSorted(["pouvoir"])
}
getDons() {
return this.getItemSorted(["don"])
}
getHubris() {
return this.getItemSorted(["hubris"])
}
getEquipments() {
return this.getItemSorted(["equipement"])
}
getMonnaies() {
return this.getItemSorted(["monnaie"])
}
getMutations() {
return this.getItemSorted(["mutation"])
}
getArmors() {
return this.getItemSorted(["protection"])
}
getPeuple() {
return this.items.find(item => item.type == "peuple")
}
getOrigine() {
return this.items.find(item => item.type == "origine")
}
@ -144,7 +160,7 @@ export class WastelandActor extends Actor {
getSkills() {
let comp = []
for (let item of this.items) {
item = duplicate(item)
item = foundry.utils.duplicate(item)
if (item.type == "competence") {
item.system.attribut1total = item.system.niveau + (this.system.attributs[item.system.attribut1]?.value || 0)
item.system.attribut2total = item.system.niveau + (this.system.attributs[item.system.attribut2]?.value || 0)
@ -206,7 +222,7 @@ export class WastelandActor extends Actor {
if (this.system.sante.base != newSante) {
this.update({ 'system.sante.base': newSante })
}
let newPsyche = (this.system.attributs.cla.value + this.system.attributs.tre.value) * this.system.biodata.psychemultiplier + 5
let newPsyche = ((this.system.attributs.cla.value + this.system.attributs.tre.value) * 2) + 5
if (this.system.psyche.fullmax != newPsyche) {
this.update({ 'system.psyche.fullmax': newPsyche })
}
@ -222,7 +238,7 @@ export class WastelandActor extends Actor {
}
/* -------------------------------------------- */
incDecSante(value) {
let sante = duplicate(this.system.sante)
let sante = foundry.utils.duplicate(this.system.sante)
sante.letaux += value
this.update({ 'system.sante': sante })
}
@ -230,7 +246,7 @@ export class WastelandActor extends Actor {
getItemById(id) {
let item = this.items.find(item => item.id == id);
if (item) {
item = duplicate(item)
item = foundry.utils.duplicate(item)
}
return item;
}
@ -285,7 +301,7 @@ export class WastelandActor extends Actor {
/* -------------------------------------------- */
subPointsPsyche(value) {
let psyche = duplicate(this.system.psyche)
let psyche = foundry.utils.duplicate(this.system.psyche)
psyche.currentmax -= value
this.update( {'system.psyche': psyche})
}
@ -324,13 +340,13 @@ export class WastelandActor extends Actor {
getSubActors() {
let subActors = [];
for (let id of this.system.subactors) {
subActors.push(duplicate(game.actors.get(id)));
subActors.push(foundry.utils.duplicate(game.actors.get(id)));
}
return subActors;
}
/* -------------------------------------------- */
async addSubActor(subActorId) {
let subActors = duplicate(this.system.subactors);
let subActors = foundry.utils.duplicate(this.system.subactors);
subActors.push(subActorId);
await this.update({ 'system.subactors': subActors });
}
@ -361,7 +377,7 @@ export class WastelandActor extends Actor {
/* -------------------------------------------- */
async setPredilectionUsed(compId, predIdx) {
let comp = this.items.get(compId)
let pred = duplicate(comp.system.predilections)
let pred = foundry.utils.duplicate(comp.system.predilections)
pred[predIdx].used = true
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
}
@ -384,7 +400,7 @@ export class WastelandActor extends Actor {
}
if ( arme.system.totalDefensif > maxDef) {
maxDef = arme.system.totalDefensif
bestArme = duplicate(arme)
bestArme = foundry.utils.duplicate(arme)
}
}
return bestArme
@ -401,21 +417,21 @@ export class WastelandActor extends Actor {
rollData.canEclatDoubleD20 = true // Always true in Wastelan
rollData.doubleD20 = false
rollData.attributs = WastelandUtility.getAttributs()
rollData.config = duplicate(game.system.wasteland.config)
rollData.config = foundry.utils.duplicate(game.system.wasteland.config)
if (attrKey) {
rollData.attrKey = attrKey
if (attrKey != "tochoose") {
rollData.actionImg = "systems/fvtt-wasteland/assets/icons/" + this.system.attributs[attrKey].labelnorm + ".webp"
rollData.attr = duplicate(this.system.attributs[attrKey])
rollData.attr = foundry.utils.duplicate(this.system.attributs[attrKey])
}
}
if (compId) {
rollData.competence = duplicate(this.items.get(compId) || {})
rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
rollData.actionImg = rollData.competence?.img
}
if (compName) {
rollData.competence = duplicate(this.items.find( item => item.name.toLowerCase() == compName.toLowerCase()) || {})
rollData.competence = foundry.utils.duplicate(this.items.find( item => item.name.toLowerCase() == compName.toLowerCase()) || {})
rollData.actionImg = rollData.competence?.img
}
return rollData
@ -443,13 +459,13 @@ export class WastelandActor extends Actor {
/* -------------------------------------------- */
async rollCharme(charmeId) {
let rollData = this.getCommonRollData("cla")
rollData.charme = duplicate(this.items.get(charmeId) || {})
rollData.charme = foundry.utils.duplicate(this.items.get(charmeId) || {})
rollData.charmeDice = "1d4"
this.launchRoll(rollData)
}
/* -------------------------------------------- */
async rollPouvoir(pouvoirId) {
let pouvoir = duplicate(this.items.get(pouvoirId) || {})
let pouvoir = foundry.utils.duplicate(this.items.get(pouvoirId) || {})
if (pouvoir?.system) {
let rollData = this.getCommonRollData(pouvoir.system.attribut, undefined, pouvoir.system.competence)
if (!rollData.competence) {
@ -484,7 +500,7 @@ export class WastelandActor extends Actor {
if (arme.type == "bouclier") {
arme = this.prepareBouclier(arme)
}
let roll = new Roll(arme.system.totalDegats).roll({ async: false })
let roll = await new Roll(arme.system.totalDegats).roll()
await WastelandUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
let rollData = {
arme: arme,

View File

@ -10,7 +10,7 @@ export class WastelandCombat extends Combat {
const c = this.combatants.get(ids[cId]);
let id = c._id || c.id;
let initBonus = c.actor ? c.actor.getInitiativeScore() : 0
let roll = new Roll("1d10 + "+initBonus).roll({ async: false})
let roll = await new Roll("1d10 + "+initBonus).roll()
await WastelandUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"))
//console.log("Init bonus", initBonus, roll.total)
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: roll.total } ]);

View File

@ -14,6 +14,10 @@ export const WASTELAND_CONFIG = {
"nuit": "Chemin des Nuits",
"oiseaux": "Chemin des Oiseaux"
},
hubrisType: {
"mental": "Mental",
"physique": "Physique",
},
charmetype: {
tour: "Tour",
charme: "Charme",
@ -32,5 +36,22 @@ export const WASTELAND_CONFIG = {
"chimie": "Chimie",
"electricite": "Électricité",
"chimerie": "Chimérie",
},
typeArmeOptions: {
contact: "Arme de contact",
contactjet: "Arme de contact et de Jet",
jet: "Arme de Jet",
tir: "Arme de Tir",
special: "Spécial (capacité/don)"
},
difficulteOptions: {
"0": "Aucune/Inconnue",
"5": "Facile (5)",
"10": "Moyenne (10)",
"15": "Ardue (15)",
"20": "Hasardeuse (20)",
"25": "Insensée (25)",
"30": "Pure Folie (30)"
}
}

View File

@ -0,0 +1,26 @@
/**
* Extend the basic ActorSheet with some very simple modifications
* @extends {ActorSheet}
*/
import { WastelandUtility } from "./wasteland-utility.js";
import { WastelandActorSheet } from "./wasteland-actor-sheet.js";
/* -------------------------------------------- */
export class WastelandCreatureSheet extends WastelandActorSheet {
/** @override */
static get defaultOptions() {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-wasteland", "sheet", "creature"],
template: "systems/fvtt-wasteland/templates/creature-sheet.html",
width: 640,
height: 720,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
editScore: false
});
}
}

View File

@ -4,12 +4,12 @@ import { WastelandUtility } from "./wasteland-utility.js";
* Extend the basic ItemSheet with some very simple modifications
* @extends {ItemSheet}
*/
export class WastelandItemSheet extends ItemSheet {
export class WastelandItemSheet extends foundry.appv1.sheets.ItemSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-wasteland", "sheet", "item"],
template: "systems/fvtt-wasteland/templates/item-sheet.html",
dragDrop: [{ dragSelector: null, dropSelector: null }],
@ -48,8 +48,8 @@ export class WastelandItemSheet extends ItemSheet {
/* -------------------------------------------- */
async getData() {
const objectData = duplicate(this.object)
let itemData = objectData
const objectData = foundry.utils.duplicate(this.object)
let itemData = objectData
let formData = {
title: this.title,
id: this.id,
@ -59,7 +59,7 @@ export class WastelandItemSheet extends ItemSheet {
editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked",
attributs: WastelandUtility.getAttributs(),
config: duplicate(game.system.wasteland.config),
config: foundry.utils.duplicate(game.system.wasteland.config),
data: itemData.system,
system: itemData.system,
limited: this.object.limited,
@ -87,7 +87,7 @@ export class WastelandItemSheet extends ItemSheet {
/* -------------------------------------------- */
postItem() {
let chatData = duplicate(WastelandUtility.data(this.item));
let chatData = foundry.utils.duplicate(WastelandUtility.data(this.item));
if (this.actor) {
chatData.actor = { id: this.actor.id };
}
@ -130,27 +130,27 @@ export class WastelandItemSheet extends ItemSheet {
html.find('.edit-prediction').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index")
let pred = duplicate(this.object.system.predilections)
let pred = foundry.utils.duplicate(this.object.system.predilections)
pred[index].name = ev.currentTarget.value
this.object.update( { 'data.predilections': pred })
})
html.find('.delete-prediction').click(ev => {
const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index")
let pred = duplicate(this.object.system.predilections)
let pred = foundry.utils.duplicate(this.object.system.predilections)
pred.splice(index,1)
this.object.update( { 'data.predilections': pred })
})
html.find('.use-prediction').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index")
let pred = duplicate(this.object.system.predilections)
let pred = foundry.utils.duplicate(this.object.system.predilections)
pred[index].used = ev.currentTarget.checked
this.object.update( { 'data.predilections': pred })
})
})
html.find('#add-predilection').click(ev => {
let pred = duplicate(this.object.system.predilections)
pred.push( { name: "Nouvelle prédilection", used: false })
let pred = foundry.utils.duplicate(this.object.system.predilections)
pred.push( { name: "Nouvelle prédilection", used: false })
this.object.update( { 'data.predilections': pred })
})
// Update Inventory Item

View File

@ -17,6 +17,8 @@ export const defaultItemImg = {
heritage: "systems/fvtt-wasteland/assets/icons/legacy.webp",
charme: "systems/fvtt-wasteland/assets/icons/charm.webp",
peuple: "systems/fvtt-wasteland/assets/icons/people.webp",
don: "systems/fvtt-wasteland/assets/icons/don.webp",
hubris: "systems/fvtt-wasteland/assets/icons/hubris.webp",
}
/**

View File

@ -11,7 +11,7 @@
import { WastelandActor } from "./wasteland-actor.js";
import { WastelandItemSheet } from "./wasteland-item-sheet.js";
import { WastelandActorSheet } from "./wasteland-actor-sheet.js";
//import { WastelandNPCSheet } from "./wasteland-npc-sheet.js";
import { WastelandCreatureSheet } from "./wasteland-creature-sheet.js";
import { WastelandUtility } from "./wasteland-utility.js";
import { WastelandCombat } from "./wasteland-combat.js";
import { WastelandItem } from "./wasteland-item.js";
@ -28,9 +28,9 @@ Hooks.once("init", async function () {
/* -------------------------------------------- */
// preload handlebars templates
WastelandUtility.preloadHandlebarsTemplates();
/* -------------------------------------------- */
// Set an initiative formula for the system
// Set an initiative formula for the system
CONFIG.Combat.initiative = {
formula: "1d6",
decimals: 1
@ -52,15 +52,15 @@ Hooks.once("init", async function () {
/* -------------------------------------------- */
// Register sheet application classes
Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("fvtt-wasteland", WastelandActorSheet, { types: ["personnage"], makeDefault: true })
//Actors.registerSheet("fvtt-wasteland", WastelandNPCSheet, { types: ["npc"], makeDefault: false });
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
foundry.documents.collections.Actors.registerSheet("fvtt-wasteland", WastelandActorSheet, { types: ["personnage"], makeDefault: true })
foundry.documents.collections.Actors.registerSheet("fvtt-wasteland", WastelandCreatureSheet, { types: ["creature"], makeDefault: false });
Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("fvtt-wasteland", WastelandItemSheet, { makeDefault: true })
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
foundry.documents.collections.Items.registerSheet("fvtt-wasteland", WastelandItemSheet, { makeDefault: true })
WastelandUtility.init();
});
/* -------------------------------------------- */
@ -72,33 +72,19 @@ function welcomeMessage() {
<strong>Bienvenue dans les Wasteland !</strong>
<p>Les livres de Wasteland sont nécessaires pour jouer : https://www.titam-france.fr</p>
<p>Wasteland est jeu de rôle publié par Titam France/Sombres projets, tout les droits leur appartiennent.</p>
<p>Système développé par LeRatierBretonnien, support sur le <a href="https://discord.gg/pPSDNJk">Discord FR de Foundry</a>.</p>
<p>Système développé par LeRatierBretonnien, avec le support de Prêtre. Plus d'infos et aides sur le <a href="https://discord.gg/pPSDNJk">Discord FR de Foundry</a>.</p>
` });
}
/* -------------------------------------------- */
// Register world usage statistics
function registerUsageCount( registerKey ) {
if ( game.user.isGM ) {
game.settings.register(registerKey, "world-key", {
name: "Unique world key",
scope: "world",
config: false,
default: "",
type: String
});
let worldKey = game.settings.get(registerKey, "world-key")
if ( worldKey == undefined || worldKey == "" ) {
worldKey = randomID(32)
game.settings.set(registerKey, "world-key", worldKey )
}
// Simple API counter
let regURL = `https://www.uberwald.me/fvtt_appcount/count.php?name="${registerKey}"&worldKey="${worldKey}"&version="${game.release.generation}.${game.release.build}"&system="${game.system.id}"&systemversion="${game.system.version}"`
//$.ajaxSetup({
//headers: { 'Access-Control-Allow-Origin': '*' }
//})
$.ajax(regURL)
/* -------------------------------------------- */
async function importDefaultScene() {
let exists = game.scenes.find(j => j.name == "Accueil");
if (!exists) {
const scenes = await WastelandUtility.loadCompendium("fvtt-wasteland.scenes")
let newDocuments = scenes.filter(i => i.name == "Accueil");
await game.scenes.documentClass.create(newDocuments);
game.scenes.find(i => i.name == "Accueil").activate();
}
}
@ -108,6 +94,7 @@ function registerUsageCount( registerKey ) {
Hooks.once("ready", function () {
WastelandUtility.ready();
// User warning
if (!game.user.isGM && game.user.character == undefined) {
ui.notifications.info("Attention ! Aucun personnage n'est relié au joueur !");
@ -116,9 +103,24 @@ Hooks.once("ready", function () {
user: game.user._id
});
}
registerUsageCount('fvtt-wasteland')
if (!game.user.isGM && game.user.character && !game.user.character.prototypeToken.actorLink) {
ui.notifications.info("Le token de du joueur n'est pas connecté à l'acteur !");
ChatMessage.create({
content: "<b>ATTENTION</b> Le token du joueur " + game.user.name + " n'est pas connecté à l'acteur !",
user: game.user._id
});
}
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();
importDefaultScene();
});
/* -------------------------------------------- */
@ -134,4 +136,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
}
return true;
});

View File

@ -6,7 +6,7 @@ export class WastelandRollDialog extends Dialog {
static async create(actor, rollData) {
let options = { classes: ["WastelandDialog"], width: 340, height: 'fit-content', 'z-index': 99999 };
let html = await renderTemplate('systems/fvtt-wasteland/templates/roll-dialog-generic.html', rollData);
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-wasteland/templates/roll-dialog-generic.html', rollData);
return new WastelandRollDialog(actor, rollData, html, options);
}
@ -68,7 +68,6 @@ export class WastelandRollDialog extends Dialog {
activateListeners(html) {
super.activateListeners(html);
var dialog = this;
function onLoad() {
}
$(function () { onLoad(); });

View File

@ -4,17 +4,17 @@ import { WastelandCommands } from "./wasteland-commands.js";
/* -------------------------------------------- */
const __contrecouptCharme = {
1 : {name: "Effet chromatique", description: "" },
3 : {name: "Enivrement Kobold", description: "" },
5 : {name: "Mutisme superstitieux", description: "" },
7 : {name: "Agité!", description: "" },
9 : {name: "Somnolence", description: "" },
11 : {name: "Manie incontrôlable", description: "" },
13 : {name: "Malédiction des Ternes", description: "" },
15 : {name: "La petite Mort", description: "" },
17 : {name: "Angoisse cauchemardesque", description: "" },
19 : {name: "Anémie Kobold", description: "" }
}
1 : {name: "Effet chromatique", description: "le corps du kobold prend des teintes aussi étranges que voyantes. L'effet sestompe progressivement et 24 heures plus tard, le kobold retrouve ses couleurs dorigine." },
3 : {name: "Enivrement Kobold", description: "très excité par son premier tour, le kobold doit immédiatement faire un autre tour, pour lequel il emploiera un dé plus gros." },
5 : {name: "Mutisme superstitieux", description: "le kobold ne doit plus parler» pendant les prochaines 24 heures. S'il le fait malgré tout, les effets de son tour sarrêtent." },
7 : {name: "Agité!", description: "le kobold ne tient plus en place. Il ne peut se reposer pendant les prochaines 12 heures. Dès. que 12 heures se sont écoulées, il s'effondre comme une masse et dort 12 heures d'affilée dun sommeil enchanté dont rien ne pourra le réveiller." },
9 : {name: "Somnolence", description: "le kobold devient somnolent. Il narrive pas à se concentrer même sur une tâche simple, bäille sans arrêt, traîne les pieds et nagit plus que de mauvaise grâce. Cela dure jusquà ce qu'il ait dormi au moins 12 heures." },
11 : {name: "Manie incontrôlable", description: "le kobold est pris dune manie incontrôlable. Dès qu'il voit un chapeau rouge, il doit suivre son porteur. Il ne mangera que si son voisin de gauche mange aussi, etc. Cela dure pendant une jour- née puis leffet sinverse pendant une heure : il ne suivra jamais un chapeau rouge, ne mangera jamais si son voi- sin de gauche mange, etc. Le contrecoup prend alors fin." },
13 : {name: "Malédiction des Ternes", description: "le kobold perd cette qualité mystérieuse qui fait que les kobolds sont des kobolds et devient tout. Terne. Il perd 1d20 point(s) de Bonne Aventure (sil doit en perdre plus qu'il nen a, il tombe simplement à 0). Ces points perdus pourront cependant être regagnés normalement." },
15 : {name: "La petite Mort", description: "le kobold s'endort pour 1420 heures. Rien ni personne ne pourra le tirer de ce sommeil enchanté avant que ce contrecoup ne prenne fin." },
17 : {name: "Angoisse cauchemardesque", description: "le kobold a une brève vision de pure horreur. Il perd 1420 points de Psyché {s'il doit en perdre plus qu'il nen a, il tombe à 0)." },
19 : {name: "Anémie Kobold", description: "le kobold se met à saigner du nez, des oreilles et même dautres endroits. Il perd 1420 point(s) de Santé." }
}
/* -------------------------------------------- */
export class WastelandUtility {
@ -23,14 +23,11 @@ export class WastelandUtility {
/* -------------------------------------------- */
static async init() {
Hooks.on('renderChatLog', (log, html, data) => WastelandUtility.chatListeners(html))
Hooks.on("getChatLogEntryContext", (html, options) => WastelandUtility.chatRollMenu(html, options))
Hooks.on("getChatMessageContextOptions", (html, options) => WastelandUtility.chatRollMenu(html, options))
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
WastelandUtility.pushInitiativeOptions(html, options);
})
Hooks.on("dropCanvasData", (canvas, data) => {
WastelandUtility.dropItemOnToken(canvas, data)
});
this.rollDataStore = {}
this.defenderStore = {}
@ -114,6 +111,28 @@ export class WastelandUtility {
static async ready() {
const skills = await WastelandUtility.loadCompendium("fvtt-wasteland.skills")
this.skills = skills.map(i => i.toObject())
game.system.wasteland.config.listeNiveauSkill = WastelandUtility.createDirectOptionList(0, 10)
game.system.wasteland.config.listeNiveauCreature = WastelandUtility.createDirectOptionList(0, 35)
game.system.wasteland.config.modificateurOptions = WastelandUtility.createArrayOptionList(-15, 15)
game.system.wasteland.config.pointsAmeOptions = WastelandUtility.createDirectOptionList(0, 20)
}
/* -------------------------------------------- */
static createDirectOptionList(min, max) {
let options = {};
for (let i = min; i <= max; i++) {
options[`${i}`] = `${i}`;
}
return options;
}
static createArrayOptionList(min, max) {
let options = [];
for (let i = min; i <= max; i++) {
options.push({key:`${i}`, label:`${i}`});
}
return options;
}
/* -------------------------------------------- */
@ -135,14 +154,14 @@ export class WastelandUtility {
/* -------------------------------------------- */
static async chatListeners(html) {
html.on("click", '.predilection-reroll', async event => {
$(html).on("click", '.predilection-reroll', async event => {
let predIdx = $(event.currentTarget).data("predilection-index")
let messageId = WastelandUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "wasteland-roll")
let actor = WastelandUtility.getActorFromRollData(rollData)
await actor.setPredilectionUsed(rollData.competence._id, predIdx)
rollData.competence = duplicate(actor.getCompetence(rollData.competence._id))
rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id))
await WastelandUtility.rollWasteland(rollData)
})
}
@ -152,10 +171,9 @@ export class WastelandUtility {
const templatePaths = [
'systems/fvtt-wasteland/templates/editor-notes-gm.html',
'systems/fvtt-wasteland/templates/partial-item-description.html',
'systems/fvtt-wasteland/templates/partial-list-niveau.html'
'systems/fvtt-wasteland/templates/partial-item-description.html'
]
return loadTemplates(templatePaths);
return foundry.applications.handlebars.loadTemplates(templatePaths);
}
/* -------------------------------------------- */
@ -187,15 +205,6 @@ export class WastelandUtility {
return undefined;
}
/* -------------------------------------------- */
static createDirectOptionList(min, max) {
let options = {};
for (let i = min; i <= max; i++) {
options[`${i}`] = `${i}`;
}
return options;
}
/* -------------------------------------------- */
static buildListOptions(min, max) {
let options = ""
@ -220,14 +229,14 @@ export class WastelandUtility {
let id = rollData.rollId;
let oldRollData = this.rollDataStore[id] || {};
let newRollData = mergeObject(oldRollData, rollData);
let newRollData = foundry.utils.mergeObject(oldRollData, rollData);
this.rollDataStore[id] = newRollData;
}
/* -------------------------------------------- */
static saveRollData(rollData) {
game.socket.emit("system.fvtt-wasteland", {
name: "msg_update_roll", data: rollData
}); // Notify all other clients of the roll
}); // Notify all other clients of the roll
this.updateRollData(rollData);
}
@ -292,10 +301,10 @@ export class WastelandUtility {
}
/* -------------------------------------------- */
static computeResult(rollData, actor) {
static async computeResult(rollData, actor) {
if (rollData.charme) {
let resultIndex = false
let resTab = duplicate(rollData.charme.system.resultats)
let resTab = foundry.utils.duplicate(rollData.charme.system.resultats)
for(let id in resTab) {
let res = resTab[id]
if (!resultIndex && rollData.finalResult >= res.value) {
@ -305,7 +314,7 @@ export class WastelandUtility {
if (resultIndex) {
rollData.charmeDuree = rollData.charme.system.resultats[resultIndex].description
}
let effectRoll = new Roll(rollData.charmeDice).roll({ async: false })
let effectRoll = await new Roll(rollData.charmeDice).roll()
if (rollData.charme.system.charmetype == "tour") {
rollData.contrecoupResult = effectRoll.total
if (rollData.contrecoupResult % 2 == 1) {
@ -313,8 +322,8 @@ export class WastelandUtility {
}
}
if (rollData.charme.system.charmetype == "charme") {
rollData.charmeSante = effectRoll.total
actor.incDecSante(rollData.charmeSante)
rollData.charmeSante = effectRoll.total
actor.incDecSante(rollData.charmeSante)
}
} else {
if (rollData.mainDice == "1d20") {
@ -330,13 +339,13 @@ export class WastelandUtility {
}
}
}
//console.log("Result : ", rollData)
if (rollData.difficulte > 0 && !rollData.isDramatique) {
rollData.isSuccess = (rollData.finalResult >= rollData.difficulte)
rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10)
rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10)
}
}
}
}
@ -349,7 +358,7 @@ export class WastelandUtility {
}
if (!rollData.attr) {
rollData.actionImg = "systems/fvtt-wasteland/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
rollData.attr = duplicate(actor.system.attributs[rollData.attrKey])
rollData.attr = foundry.utils.duplicate(actor.system.attributs[rollData.attrKey])
}
if (rollData.charme) {
@ -361,12 +370,12 @@ export class WastelandUtility {
if (!rollData.isReroll) {
actor.changeEclat(-1)
}
}
}
}
//console.log("BEFORE COMP", rollData)
if (rollData.competence) {
rollData.predilections = duplicate(rollData.competence.system.predilections.filter(pred => !pred.used) || [])
rollData.predilections = foundry.utils.duplicate(rollData.competence.system.predilections.filter(pred => !pred.used) || [])
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
} else {
@ -376,17 +385,17 @@ export class WastelandUtility {
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
}
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
let myRoll = await new Roll(rollData.diceFormula).roll()
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = duplicate(myRoll)
rollData.roll = foundry.utils.duplicate(myRoll)
rollData.diceResult = myRoll.terms[0].results[0].result
console.log(">>>> ", myRoll)
rollData.finalResult = myRoll.total
this.computeResult(rollData, actor)
await this.computeResult(rollData, actor)
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-wasteland/templates/chat-generic-result.html`, rollData)
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-wasteland/templates/chat-generic-result.html`, rollData)
}, rollData)
}
@ -395,13 +404,13 @@ export class WastelandUtility {
static async bonusRollWasteland(rollData) {
rollData.bonusFormula = rollData.addedBonus
let bonusRoll = new Roll(rollData.bonusFormula).roll({ async: false })
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
rollData.bonusRoll = duplicate(bonusRoll)
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
rollData.finalResult += rollData.bonusRoll.total
this.computeResult(rollData)
await this.computeResult(rollData)
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-wasteland/templates/chat-generic-result.html`, rollData)
@ -431,7 +440,7 @@ export class WastelandUtility {
/* -------------------------------------------- */
static blindMessageToGM(chatOptions) {
let chatGM = duplicate(chatOptions);
let chatGM = foundry.utils.duplicate(chatOptions);
chatGM.whisper = this.getUsers(user => user.isGM);
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
console.log("blindMessageToGM", chatGM);
@ -493,7 +502,7 @@ export class WastelandUtility {
/* -------------------------------------------- */
static getBasicRollData() {
let rollData = {
rollId: randomID(16),
rollId: foundry.utils.randomID(16),
rollMode: game.settings.get("core", "rollMode"),
modificateursOptions: this.getModificateurOptions(),
pointAmeOptions: this.getPointAmeOptions(),
@ -526,7 +535,7 @@ export class WastelandUtility {
/* -------------------------------------------- */
static applyBonneAventureRoll(li, changed, addedBonus) {
let msgId = li.data("message-id")
let msgId = $(li).data("message-id")
let msg = game.messages.get(msgId)
if (msg) {
let rollData = msg.getFlag("world", "wasteland-roll")
@ -545,7 +554,7 @@ export class WastelandUtility {
/* -------------------------------------------- */
static applyEclatRoll(li, changed, addedBonus) {
let msgId = li.data("message-id")
let msgId = $(li).data("message-id")
let msg = game.messages.get(msgId)
if (msg) {
let rollData = msg.getFlag("world", "wasteland-roll")
@ -562,7 +571,7 @@ export class WastelandUtility {
static chatRollMenu(html, options) {
let canApply = li => canvas.tokens.controlled.length && li.find(".wasteland-roll").length
let hasBA = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "wasteland-roll")
if (rollData?.actorId) {
let actor = game.actors.get(rollData.actorId)
@ -572,7 +581,7 @@ export class WastelandUtility {
return false
}
let hasBA2 = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "wasteland-roll")
if (rollData?.actorId) {
let actor = game.actors.get(rollData.actorId)
@ -582,7 +591,7 @@ export class WastelandUtility {
return false
}
let hasBA3 = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "wasteland-roll")
if (rollData?.actorId) {
let actor = game.actors.get(rollData.actorId)
@ -592,7 +601,7 @@ export class WastelandUtility {
return false
}
let hasPE = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "wasteland-roll")
if (rollData?.actorId) {
let actor = game.actors.get(rollData.actorId)
@ -602,7 +611,7 @@ export class WastelandUtility {
return false
}
let hasPredilection = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "wasteland-roll")
if (rollData.competence) {
let nbPred = rollData.competence.data.predilections.filter(pred => !pred.used).length
@ -611,7 +620,7 @@ export class WastelandUtility {
return false
}
let canCompetenceDouble = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "wasteland-roll")
if (rollData.competence) {
return rollData.competence.data.doublebonus

Binary file not shown.

BIN
packs/armes/000211.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000078
MANIFEST-000207

View File

@ -1,8 +1,15 @@
2023/12/01-09:39:06.657234 7fef57fff6c0 Recovering log #76
2023/12/01-09:39:06.667932 7fef57fff6c0 Delete type=3 #74
2023/12/01-09:39:06.667995 7fef57fff6c0 Delete type=0 #76
2023/12/01-09:50:10.707951 7fef56ffd6c0 Level-0 table #81: started
2023/12/01-09:50:10.707996 7fef56ffd6c0 Level-0 table #81: 0 bytes OK
2023/12/01-09:50:10.726578 7fef56ffd6c0 Delete type=0 #79
2023/12/01-09:50:10.754430 7fef56ffd6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2023/12/01-09:50:10.754484 7fef56ffd6c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2025/04/30-23:34:36.843982 7f4b377fe6c0 Recovering log #205
2025/04/30-23:34:36.854202 7f4b377fe6c0 Delete type=3 #203
2025/04/30-23:34:36.854267 7f4b377fe6c0 Delete type=0 #205
2025/04/30-23:48:18.868020 7f4b35bff6c0 Level-0 table #210: started
2025/04/30-23:48:18.871615 7f4b35bff6c0 Level-0 table #210: 9139 bytes OK
2025/04/30-23:48:18.878237 7f4b35bff6c0 Delete type=0 #208
2025/04/30-23:48:18.899179 7f4b35bff6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2025/04/30-23:48:18.908897 7f4b35bff6c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at '!items!wv5EiePmPTpqFutt' @ 198 : 1
2025/04/30-23:48:18.908911 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:18.912613 7f4b35bff6c0 Generated table #211@1: 40 keys, 9139 bytes
2025/04/30-23:48:18.912644 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 9139 bytes
2025/04/30-23:48:18.918969 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:18.919113 7f4b35bff6c0 Delete type=2 #170
2025/04/30-23:48:18.919322 7f4b35bff6c0 Delete type=2 #210
2025/04/30-23:48:18.940456 7f4b35bff6c0 Manual compaction at level-1 from '!items!wv5EiePmPTpqFutt' @ 198 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/12/01-09:36:46.735204 7fef57fff6c0 Recovering log #72
2023/12/01-09:36:46.745007 7fef57fff6c0 Delete type=3 #70
2023/12/01-09:36:46.745100 7fef57fff6c0 Delete type=0 #72
2023/12/01-09:37:12.141437 7fef56ffd6c0 Level-0 table #77: started
2023/12/01-09:37:12.141461 7fef56ffd6c0 Level-0 table #77: 0 bytes OK
2023/12/01-09:37:12.148157 7fef56ffd6c0 Delete type=0 #75
2023/12/01-09:37:12.155670 7fef56ffd6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2023/12/01-09:37:12.155729 7fef56ffd6c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2025/03/14-14:12:16.222563 7fba4cff96c0 Recovering log #201
2025/03/14-14:12:16.331822 7fba4cff96c0 Delete type=3 #199
2025/03/14-14:12:16.331880 7fba4cff96c0 Delete type=0 #201
2025/03/14-14:12:43.151120 7fb7affff6c0 Level-0 table #206: started
2025/03/14-14:12:43.151177 7fb7affff6c0 Level-0 table #206: 0 bytes OK
2025/03/14-14:12:43.158103 7fb7affff6c0 Delete type=0 #204
2025/03/14-14:12:43.158243 7fb7affff6c0 Manual compaction at level-0 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.158267 7fb7affff6c0 Manual compaction at level-1 from '!items!0swiE8k5zfUIqmXu' @ 72057594037927935 : 1 .. '!items!wv5EiePmPTpqFutt' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/armes/MANIFEST-000207 Normal file

Binary file not shown.

BIN
packs/artifex/000072.ldb Normal file

Binary file not shown.

1
packs/artifex/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000068

15
packs/artifex/LOG Normal file
View File

@ -0,0 +1,15 @@
2025/04/30-23:34:36.895184 7f4b377fe6c0 Recovering log #66
2025/04/30-23:34:36.905592 7f4b377fe6c0 Delete type=3 #64
2025/04/30-23:34:36.905651 7f4b377fe6c0 Delete type=0 #66
2025/04/30-23:48:18.878429 7f4b35bff6c0 Level-0 table #71: started
2025/04/30-23:48:18.882400 7f4b35bff6c0 Level-0 table #71: 1326 bytes OK
2025/04/30-23:48:18.888668 7f4b35bff6c0 Delete type=0 #69
2025/04/30-23:48:18.899190 7f4b35bff6c0 Manual compaction at level-0 from '!items!PqP7BWEkK7aK65yH' @ 72057594037927935 : 1 .. '!items!irEA0eyE731viEYl' @ 0 : 0; will stop at (end)
2025/04/30-23:48:18.929965 7f4b35bff6c0 Manual compaction at level-1 from '!items!PqP7BWEkK7aK65yH' @ 72057594037927935 : 1 .. '!items!irEA0eyE731viEYl' @ 0 : 0; will stop at '!items!irEA0eyE731viEYl' @ 8 : 1
2025/04/30-23:48:18.929978 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:18.933899 7f4b35bff6c0 Generated table #72@1: 2 keys, 1326 bytes
2025/04/30-23:48:18.933939 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 1326 bytes
2025/04/30-23:48:18.940009 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:18.940137 7f4b35bff6c0 Delete type=2 #31
2025/04/30-23:48:18.940329 7f4b35bff6c0 Delete type=2 #71
2025/04/30-23:48:18.940491 7f4b35bff6c0 Manual compaction at level-1 from '!items!irEA0eyE731viEYl' @ 8 : 1 .. '!items!irEA0eyE731viEYl' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2025/03/14-14:12:16.547348 7fba4dffb6c0 Recovering log #62
2025/03/14-14:12:16.651982 7fba4dffb6c0 Delete type=3 #60
2025/03/14-14:12:16.652055 7fba4dffb6c0 Delete type=0 #62
2025/03/14-14:12:43.177170 7fb7affff6c0 Level-0 table #67: started
2025/03/14-14:12:43.177222 7fb7affff6c0 Level-0 table #67: 0 bytes OK
2025/03/14-14:12:43.183990 7fb7affff6c0 Delete type=0 #65
2025/03/14-14:12:43.184112 7fb7affff6c0 Manual compaction at level-0 from '!items!PqP7BWEkK7aK65yH' @ 72057594037927935 : 1 .. '!items!irEA0eyE731viEYl' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.184172 7fb7affff6c0 Manual compaction at level-1 from '!items!PqP7BWEkK7aK65yH' @ 72057594037927935 : 1 .. '!items!irEA0eyE731viEYl' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/bestiaire/000084.ldb Normal file

Binary file not shown.

1
packs/bestiaire/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000080

15
packs/bestiaire/LOG Normal file
View File

@ -0,0 +1,15 @@
2025/04/30-23:34:36.716442 7f4b37fff6c0 Recovering log #78
2025/04/30-23:34:36.727453 7f4b37fff6c0 Delete type=3 #76
2025/04/30-23:34:36.727523 7f4b37fff6c0 Delete type=0 #78
2025/04/30-23:48:18.706181 7f4b35bff6c0 Level-0 table #83: started
2025/04/30-23:48:18.709827 7f4b35bff6c0 Level-0 table #83: 44954 bytes OK
2025/04/30-23:48:18.715963 7f4b35bff6c0 Delete type=0 #81
2025/04/30-23:48:18.728104 7f4b35bff6c0 Manual compaction at level-0 from '!actors!S7FhBajQ5KKhIpj6' @ 72057594037927935 : 1 .. '!folders!BHMWTRHF2lNlAK8u' @ 0 : 0; will stop at (end)
2025/04/30-23:48:18.762918 7f4b35bff6c0 Manual compaction at level-1 from '!actors!S7FhBajQ5KKhIpj6' @ 72057594037927935 : 1 .. '!folders!BHMWTRHF2lNlAK8u' @ 0 : 0; will stop at '!actors.items!zYffQLFKlxJ5Li83.vNpsdvHgD5qBYYPt' @ 207 : 1
2025/04/30-23:48:18.762928 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:18.767038 7f4b35bff6c0 Generated table #84@1: 54 keys, 45104 bytes
2025/04/30-23:48:18.767074 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 45104 bytes
2025/04/30-23:48:18.773021 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:18.773163 7f4b35bff6c0 Delete type=2 #43
2025/04/30-23:48:18.773348 7f4b35bff6c0 Delete type=2 #83
2025/04/30-23:48:18.773485 7f4b35bff6c0 Manual compaction at level-1 from '!actors.items!zYffQLFKlxJ5Li83.vNpsdvHgD5qBYYPt' @ 207 : 1 .. '!folders!BHMWTRHF2lNlAK8u' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2025/03/14-14:12:15.226965 7fba4cff96c0 Recovering log #74
2025/03/14-14:12:15.314781 7fba4cff96c0 Delete type=3 #72
2025/03/14-14:12:15.314848 7fba4cff96c0 Delete type=0 #74
2025/03/14-14:12:43.118957 7fb7affff6c0 Level-0 table #79: started
2025/03/14-14:12:43.119018 7fb7affff6c0 Level-0 table #79: 0 bytes OK
2025/03/14-14:12:43.124987 7fb7affff6c0 Delete type=0 #77
2025/03/14-14:12:43.132203 7fb7affff6c0 Manual compaction at level-0 from '!actors!S7FhBajQ5KKhIpj6' @ 72057594037927935 : 1 .. '!folders!BHMWTRHF2lNlAK8u' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.132285 7fb7affff6c0 Manual compaction at level-1 from '!actors!S7FhBajQ5KKhIpj6' @ 72057594037927935 : 1 .. '!folders!BHMWTRHF2lNlAK8u' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
MANIFEST-000068

15
packs/capacreature/LOG Normal file
View File

@ -0,0 +1,15 @@
2025/04/30-23:34:36.908748 7f4b367fc6c0 Recovering log #66
2025/04/30-23:34:36.918361 7f4b367fc6c0 Delete type=3 #64
2025/04/30-23:34:36.918414 7f4b367fc6c0 Delete type=0 #66
2025/04/30-23:48:18.972361 7f4b35bff6c0 Level-0 table #71: started
2025/04/30-23:48:18.975642 7f4b35bff6c0 Level-0 table #71: 901 bytes OK
2025/04/30-23:48:18.982652 7f4b35bff6c0 Delete type=0 #69
2025/04/30-23:48:18.982859 7f4b35bff6c0 Manual compaction at level-0 from '!items!JzGNaagJD2jLi9tH' @ 72057594037927935 : 1 .. '!items!LaiHuZ30K4iJr6ce' @ 0 : 0; will stop at (end)
2025/04/30-23:48:18.992964 7f4b35bff6c0 Manual compaction at level-1 from '!items!JzGNaagJD2jLi9tH' @ 72057594037927935 : 1 .. '!items!LaiHuZ30K4iJr6ce' @ 0 : 0; will stop at '!items!LaiHuZ30K4iJr6ce' @ 8 : 1
2025/04/30-23:48:18.992976 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:18.996523 7f4b35bff6c0 Generated table #72@1: 2 keys, 901 bytes
2025/04/30-23:48:18.996557 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 901 bytes
2025/04/30-23:48:19.002824 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:19.002965 7f4b35bff6c0 Delete type=2 #31
2025/04/30-23:48:19.003117 7f4b35bff6c0 Delete type=2 #71
2025/04/30-23:48:19.023817 7f4b35bff6c0 Manual compaction at level-1 from '!items!LaiHuZ30K4iJr6ce' @ 8 : 1 .. '!items!LaiHuZ30K4iJr6ce' @ 0 : 0; will stop at (end)

View File

@ -0,0 +1,8 @@
2025/03/14-14:12:16.654330 7fba4cff96c0 Recovering log #62
2025/03/14-14:12:16.746293 7fba4cff96c0 Delete type=3 #60
2025/03/14-14:12:16.746409 7fba4cff96c0 Delete type=0 #62
2025/03/14-14:12:43.196799 7fb7affff6c0 Level-0 table #67: started
2025/03/14-14:12:43.196824 7fb7affff6c0 Level-0 table #67: 0 bytes OK
2025/03/14-14:12:43.203033 7fb7affff6c0 Delete type=0 #65
2025/03/14-14:12:43.209580 7fb7affff6c0 Manual compaction at level-0 from '!items!JzGNaagJD2jLi9tH' @ 72057594037927935 : 1 .. '!items!LaiHuZ30K4iJr6ce' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.209649 7fb7affff6c0 Manual compaction at level-1 from '!items!JzGNaagJD2jLi9tH' @ 72057594037927935 : 1 .. '!items!LaiHuZ30K4iJr6ce' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/equipement/000165.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000032
MANIFEST-000161

View File

@ -1,8 +1,15 @@
2023/12/01-09:39:06.681576 7fef577fe6c0 Recovering log #30
2023/12/01-09:39:06.693076 7fef577fe6c0 Delete type=3 #28
2023/12/01-09:39:06.693136 7fef577fe6c0 Delete type=0 #30
2023/12/01-09:50:10.747791 7fef56ffd6c0 Level-0 table #35: started
2023/12/01-09:50:10.747836 7fef56ffd6c0 Level-0 table #35: 0 bytes OK
2023/12/01-09:50:10.754312 7fef56ffd6c0 Delete type=0 #33
2023/12/01-09:50:10.754473 7fef56ffd6c0 Manual compaction at level-0 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)
2023/12/01-09:50:10.754513 7fef56ffd6c0 Manual compaction at level-1 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)
2025/04/30-23:34:36.870151 7f4b36ffd6c0 Recovering log #159
2025/04/30-23:34:36.881113 7f4b36ffd6c0 Delete type=3 #157
2025/04/30-23:34:36.881239 7f4b36ffd6c0 Delete type=0 #159
2025/04/30-23:48:18.888821 7f4b35bff6c0 Level-0 table #164: started
2025/04/30-23:48:18.892155 7f4b35bff6c0 Level-0 table #164: 12597 bytes OK
2025/04/30-23:48:18.899021 7f4b35bff6c0 Delete type=0 #162
2025/04/30-23:48:18.899201 7f4b35bff6c0 Manual compaction at level-0 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)
2025/04/30-23:48:18.919452 7f4b35bff6c0 Manual compaction at level-1 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at '!items!zjMDuxKHKJ4vE5UV' @ 418 : 1
2025/04/30-23:48:18.919468 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:18.923147 7f4b35bff6c0 Generated table #165@1: 70 keys, 13743 bytes
2025/04/30-23:48:18.923180 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 13743 bytes
2025/04/30-23:48:18.929583 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:18.929705 7f4b35bff6c0 Delete type=2 #124
2025/04/30-23:48:18.929864 7f4b35bff6c0 Delete type=2 #164
2025/04/30-23:48:18.940473 7f4b35bff6c0 Manual compaction at level-1 from '!items!zjMDuxKHKJ4vE5UV' @ 418 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/12/01-09:36:46.762028 7ff1ecbfe6c0 Recovering log #25
2023/12/01-09:36:46.771832 7ff1ecbfe6c0 Delete type=3 #23
2023/12/01-09:36:46.771891 7ff1ecbfe6c0 Delete type=0 #25
2023/12/01-09:37:12.127448 7fef56ffd6c0 Level-0 table #31: started
2023/12/01-09:37:12.127484 7fef56ffd6c0 Level-0 table #31: 0 bytes OK
2023/12/01-09:37:12.133959 7fef56ffd6c0 Delete type=0 #29
2023/12/01-09:37:12.155632 7fef56ffd6c0 Manual compaction at level-0 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)
2023/12/01-09:37:12.155701 7fef56ffd6c0 Manual compaction at level-1 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)
2025/03/14-14:12:16.441764 7fba4e7fc6c0 Recovering log #155
2025/03/14-14:12:16.537350 7fba4e7fc6c0 Delete type=3 #153
2025/03/14-14:12:16.537465 7fba4e7fc6c0 Delete type=0 #155
2025/03/14-14:12:43.170716 7fb7affff6c0 Level-0 table #160: started
2025/03/14-14:12:43.170742 7fb7affff6c0 Level-0 table #160: 0 bytes OK
2025/03/14-14:12:43.176998 7fb7affff6c0 Delete type=0 #158
2025/03/14-14:12:43.184102 7fb7affff6c0 Manual compaction at level-0 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.184156 7fb7affff6c0 Manual compaction at level-1 from '!folders!JlP90zkPvPcJDq0q' @ 72057594037927935 : 1 .. '!items!zjMDuxKHKJ4vE5UV' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/heritages/000235.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000102
MANIFEST-000231

View File

@ -1,8 +1,15 @@
2023/12/01-09:39:06.620746 7ff1ecbfe6c0 Recovering log #100
2023/12/01-09:39:06.631263 7ff1ecbfe6c0 Delete type=3 #98
2023/12/01-09:39:06.631327 7ff1ecbfe6c0 Delete type=0 #100
2023/12/01-09:50:10.694250 7fef56ffd6c0 Level-0 table #105: started
2023/12/01-09:50:10.694272 7fef56ffd6c0 Level-0 table #105: 0 bytes OK
2023/12/01-09:50:10.700492 7fef56ffd6c0 Delete type=0 #103
2023/12/01-09:50:10.707781 7fef56ffd6c0 Manual compaction at level-0 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
2023/12/01-09:50:10.707812 7fef56ffd6c0 Manual compaction at level-1 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
2025/04/30-23:34:36.801202 7f4b377fe6c0 Recovering log #229
2025/04/30-23:34:36.811770 7f4b377fe6c0 Delete type=3 #227
2025/04/30-23:34:36.811874 7f4b377fe6c0 Delete type=0 #229
2025/04/30-23:48:18.794531 7f4b35bff6c0 Level-0 table #234: started
2025/04/30-23:48:18.797886 7f4b35bff6c0 Level-0 table #234: 9428 bytes OK
2025/04/30-23:48:18.803898 7f4b35bff6c0 Delete type=0 #232
2025/04/30-23:48:18.814497 7f4b35bff6c0 Manual compaction at level-0 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
2025/04/30-23:48:18.835756 7f4b35bff6c0 Manual compaction at level-1 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at '!items!nYYX7rtSMGFO4xVY' @ 50 : 1
2025/04/30-23:48:18.835774 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:18.839323 7f4b35bff6c0 Generated table #235@1: 10 keys, 9428 bytes
2025/04/30-23:48:18.839351 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 9428 bytes
2025/04/30-23:48:18.846314 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:18.846437 7f4b35bff6c0 Delete type=2 #194
2025/04/30-23:48:18.846585 7f4b35bff6c0 Delete type=2 #234
2025/04/30-23:48:18.856744 7f4b35bff6c0 Manual compaction at level-1 from '!items!nYYX7rtSMGFO4xVY' @ 50 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/12/01-09:36:46.695660 7fef577fe6c0 Recovering log #96
2023/12/01-09:36:46.705301 7fef577fe6c0 Delete type=3 #94
2023/12/01-09:36:46.705365 7fef577fe6c0 Delete type=0 #96
2023/12/01-09:37:12.112938 7fef56ffd6c0 Level-0 table #101: started
2023/12/01-09:37:12.112983 7fef56ffd6c0 Level-0 table #101: 0 bytes OK
2023/12/01-09:37:12.120632 7fef56ffd6c0 Delete type=0 #99
2023/12/01-09:37:12.127253 7fef56ffd6c0 Manual compaction at level-0 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
2023/12/01-09:37:12.127284 7fef56ffd6c0 Manual compaction at level-1 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
2025/03/14-14:12:15.786018 7fba4d7fa6c0 Recovering log #225
2025/03/14-14:12:15.880213 7fba4d7fa6c0 Delete type=3 #223
2025/03/14-14:12:15.880325 7fba4d7fa6c0 Delete type=0 #225
2025/03/14-14:12:43.138938 7fb7affff6c0 Level-0 table #230: started
2025/03/14-14:12:43.138968 7fb7affff6c0 Level-0 table #230: 0 bytes OK
2025/03/14-14:12:43.144957 7fb7affff6c0 Delete type=0 #228
2025/03/14-14:12:43.158220 7fb7affff6c0 Manual compaction at level-0 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.158259 7fb7affff6c0 Manual compaction at level-1 from '!items!276PAK1VR5LK4rbE' @ 72057594037927935 : 1 .. '!items!nYYX7rtSMGFO4xVY' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/heros/000072.ldb Normal file

Binary file not shown.

1
packs/heros/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000068

15
packs/heros/LOG Normal file
View File

@ -0,0 +1,15 @@
2025/04/30-23:34:36.740855 7f4b367fc6c0 Recovering log #66
2025/04/30-23:34:36.750397 7f4b367fc6c0 Delete type=3 #64
2025/04/30-23:34:36.750518 7f4b367fc6c0 Delete type=0 #66
2025/04/30-23:48:18.693918 7f4b35bff6c0 Level-0 table #71: started
2025/04/30-23:48:18.699827 7f4b35bff6c0 Level-0 table #71: 216867 bytes OK
2025/04/30-23:48:18.705987 7f4b35bff6c0 Delete type=0 #69
2025/04/30-23:48:18.728095 7f4b35bff6c0 Manual compaction at level-0 from '!actors!2UqntsuFwDpHOKJ6' @ 72057594037927935 : 1 .. '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 0 : 0; will stop at (end)
2025/04/30-23:48:18.737814 7f4b35bff6c0 Manual compaction at level-1 from '!actors!2UqntsuFwDpHOKJ6' @ 72057594037927935 : 1 .. '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 0 : 0; will stop at '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 1036 : 1
2025/04/30-23:48:18.737824 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:18.744036 7f4b35bff6c0 Generated table #72@1: 261 keys, 216867 bytes
2025/04/30-23:48:18.744064 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 216867 bytes
2025/04/30-23:48:18.749918 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:18.750041 7f4b35bff6c0 Delete type=2 #31
2025/04/30-23:48:18.750188 7f4b35bff6c0 Delete type=2 #71
2025/04/30-23:48:18.773461 7f4b35bff6c0 Manual compaction at level-1 from '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 1036 : 1 .. '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2025/03/14-14:12:15.324808 7fba4d7fa6c0 Recovering log #62
2025/03/14-14:12:15.411092 7fba4d7fa6c0 Delete type=3 #60
2025/03/14-14:12:15.411167 7fba4d7fa6c0 Delete type=0 #62
2025/03/14-14:12:43.105838 7fb7affff6c0 Level-0 table #67: started
2025/03/14-14:12:43.105882 7fb7affff6c0 Level-0 table #67: 0 bytes OK
2025/03/14-14:12:43.112421 7fb7affff6c0 Delete type=0 #65
2025/03/14-14:12:43.132151 7fb7affff6c0 Manual compaction at level-0 from '!actors!2UqntsuFwDpHOKJ6' @ 72057594037927935 : 1 .. '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.132247 7fb7affff6c0 Manual compaction at level-1 from '!actors!2UqntsuFwDpHOKJ6' @ 72057594037927935 : 1 .. '!actors.items!hJb4itLSBq7V4ite.yaFBnMJeBvED0JeP' @ 0 : 0; will stop at (end)

BIN
packs/heros/MANIFEST-000068 Normal file

Binary file not shown.

Binary file not shown.

0
packs/metiers/000233.log Normal file
View File

BIN
packs/metiers/000235.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000102
MANIFEST-000231

View File

@ -1,8 +1,15 @@
2023/12/01-09:39:06.633401 7fef577fe6c0 Recovering log #100
2023/12/01-09:39:06.643130 7fef577fe6c0 Delete type=3 #98
2023/12/01-09:39:06.643178 7fef577fe6c0 Delete type=0 #100
2023/12/01-09:50:10.700604 7fef56ffd6c0 Level-0 table #105: started
2023/12/01-09:50:10.700627 7fef56ffd6c0 Level-0 table #105: 0 bytes OK
2023/12/01-09:50:10.707633 7fef56ffd6c0 Delete type=0 #103
2023/12/01-09:50:10.707791 7fef56ffd6c0 Manual compaction at level-0 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
2023/12/01-09:50:10.707820 7fef56ffd6c0 Manual compaction at level-1 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
2025/04/30-23:34:36.814963 7f4b37fff6c0 Recovering log #229
2025/04/30-23:34:36.825386 7f4b37fff6c0 Delete type=3 #227
2025/04/30-23:34:36.825500 7f4b37fff6c0 Delete type=0 #229
2025/04/30-23:48:18.783696 7f4b35bff6c0 Level-0 table #234: started
2025/04/30-23:48:18.787900 7f4b35bff6c0 Level-0 table #234: 36752 bytes OK
2025/04/30-23:48:18.794332 7f4b35bff6c0 Delete type=0 #232
2025/04/30-23:48:18.814486 7f4b35bff6c0 Manual compaction at level-0 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
2025/04/30-23:48:18.824946 7f4b35bff6c0 Manual compaction at level-1 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at '!items!y0G0VMyygxIj4Y7F' @ 95 : 1
2025/04/30-23:48:18.824958 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:18.829069 7f4b35bff6c0 Generated table #235@1: 19 keys, 36752 bytes
2025/04/30-23:48:18.829106 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 36752 bytes
2025/04/30-23:48:18.835188 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:18.835339 7f4b35bff6c0 Delete type=2 #194
2025/04/30-23:48:18.835566 7f4b35bff6c0 Delete type=2 #234
2025/04/30-23:48:18.856732 7f4b35bff6c0 Manual compaction at level-1 from '!items!y0G0VMyygxIj4Y7F' @ 95 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/12/01-09:36:46.708601 7ff1ecbfe6c0 Recovering log #96
2023/12/01-09:36:46.718654 7ff1ecbfe6c0 Delete type=3 #94
2023/12/01-09:36:46.718767 7ff1ecbfe6c0 Delete type=0 #96
2023/12/01-09:37:12.099976 7fef56ffd6c0 Level-0 table #101: started
2023/12/01-09:37:12.100003 7fef56ffd6c0 Level-0 table #101: 0 bytes OK
2023/12/01-09:37:12.106417 7fef56ffd6c0 Delete type=0 #99
2023/12/01-09:37:12.127232 7fef56ffd6c0 Manual compaction at level-0 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
2023/12/01-09:37:12.127277 7fef56ffd6c0 Manual compaction at level-1 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
2025/03/14-14:12:15.896685 7fba4e7fc6c0 Recovering log #225
2025/03/14-14:12:16.010368 7fba4e7fc6c0 Delete type=3 #223
2025/03/14-14:12:16.010445 7fba4e7fc6c0 Delete type=0 #225
2025/03/14-14:12:43.145023 7fb7affff6c0 Level-0 table #230: started
2025/03/14-14:12:43.145042 7fb7affff6c0 Level-0 table #230: 0 bytes OK
2025/03/14-14:12:43.150990 7fb7affff6c0 Delete type=0 #228
2025/03/14-14:12:43.158232 7fb7affff6c0 Manual compaction at level-0 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.158274 7fb7affff6c0 Manual compaction at level-1 from '!items!1zbNJIOmrsThaKFU' @ 72057594037927935 : 1 .. '!items!y0G0VMyygxIj4Y7F' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

BIN
packs/mutations/000072.ldb Normal file

Binary file not shown.

1
packs/mutations/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000068

0
packs/mutations/LOCK Normal file
View File

15
packs/mutations/LOG Normal file
View File

@ -0,0 +1,15 @@
2025/04/30-23:34:36.921742 7f4b36ffd6c0 Recovering log #66
2025/04/30-23:34:36.932497 7f4b36ffd6c0 Delete type=3 #64
2025/04/30-23:34:36.932569 7f4b36ffd6c0 Delete type=0 #66
2025/04/30-23:48:18.951413 7f4b35bff6c0 Level-0 table #71: started
2025/04/30-23:48:18.954652 7f4b35bff6c0 Level-0 table #71: 592 bytes OK
2025/04/30-23:48:18.960998 7f4b35bff6c0 Delete type=0 #69
2025/04/30-23:48:18.982837 7f4b35bff6c0 Manual compaction at level-0 from '!items!Vnpf6cKVHyd3ugnY' @ 72057594037927935 : 1 .. '!items!Vnpf6cKVHyd3ugnY' @ 0 : 0; will stop at (end)
2025/04/30-23:48:19.003217 7f4b35bff6c0 Manual compaction at level-1 from '!items!Vnpf6cKVHyd3ugnY' @ 72057594037927935 : 1 .. '!items!Vnpf6cKVHyd3ugnY' @ 0 : 0; will stop at '!items!Vnpf6cKVHyd3ugnY' @ 4 : 1
2025/04/30-23:48:19.003230 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:19.006452 7f4b35bff6c0 Generated table #72@1: 1 keys, 592 bytes
2025/04/30-23:48:19.006478 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 592 bytes
2025/04/30-23:48:19.012900 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:19.013022 7f4b35bff6c0 Delete type=2 #31
2025/04/30-23:48:19.013154 7f4b35bff6c0 Delete type=2 #71
2025/04/30-23:48:19.023828 7f4b35bff6c0 Manual compaction at level-1 from '!items!Vnpf6cKVHyd3ugnY' @ 4 : 1 .. '!items!Vnpf6cKVHyd3ugnY' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2025/03/14-14:12:16.749353 7fba4d7fa6c0 Recovering log #62
2025/03/14-14:12:16.836584 7fba4d7fa6c0 Delete type=3 #60
2025/03/14-14:12:16.836694 7fba4d7fa6c0 Delete type=0 #62
2025/03/14-14:12:43.184290 7fb7affff6c0 Level-0 table #67: started
2025/03/14-14:12:43.184339 7fb7affff6c0 Level-0 table #67: 0 bytes OK
2025/03/14-14:12:43.190473 7fb7affff6c0 Delete type=0 #65
2025/03/14-14:12:43.209530 7fb7affff6c0 Manual compaction at level-0 from '!items!Vnpf6cKVHyd3ugnY' @ 72057594037927935 : 1 .. '!items!Vnpf6cKVHyd3ugnY' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.209635 7fb7affff6c0 Manual compaction at level-1 from '!items!Vnpf6cKVHyd3ugnY' @ 72057594037927935 : 1 .. '!items!Vnpf6cKVHyd3ugnY' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

BIN
packs/origines/000236.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000103
MANIFEST-000232

View File

@ -1,8 +1,15 @@
2023/12/01-09:39:06.608385 7fef57fff6c0 Recovering log #101
2023/12/01-09:39:06.618559 7fef57fff6c0 Delete type=3 #99
2023/12/01-09:39:06.618628 7fef57fff6c0 Delete type=0 #101
2023/12/01-09:50:10.687428 7fef56ffd6c0 Level-0 table #106: started
2023/12/01-09:50:10.687455 7fef56ffd6c0 Level-0 table #106: 0 bytes OK
2023/12/01-09:50:10.694138 7fef56ffd6c0 Delete type=0 #104
2023/12/01-09:50:10.707759 7fef56ffd6c0 Manual compaction at level-0 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
2023/12/01-09:50:10.707828 7fef56ffd6c0 Manual compaction at level-1 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
2025/04/30-23:34:36.786043 7f4b367fc6c0 Recovering log #230
2025/04/30-23:34:36.796376 7f4b367fc6c0 Delete type=3 #228
2025/04/30-23:34:36.796441 7f4b367fc6c0 Delete type=0 #230
2025/04/30-23:48:18.773627 7f4b35bff6c0 Level-0 table #235: started
2025/04/30-23:48:18.777371 7f4b35bff6c0 Level-0 table #235: 32632 bytes OK
2025/04/30-23:48:18.783554 7f4b35bff6c0 Delete type=0 #233
2025/04/30-23:48:18.814472 7f4b35bff6c0 Manual compaction at level-0 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
2025/04/30-23:48:18.814519 7f4b35bff6c0 Manual compaction at level-1 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at '!items!xox7R7Uuuz0eGL0p' @ 132 : 1
2025/04/30-23:48:18.814527 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:18.818195 7f4b35bff6c0 Generated table #236@1: 23 keys, 32632 bytes
2025/04/30-23:48:18.818225 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 32632 bytes
2025/04/30-23:48:18.824550 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:18.824674 7f4b35bff6c0 Delete type=2 #195
2025/04/30-23:48:18.824850 7f4b35bff6c0 Delete type=2 #235
2025/04/30-23:48:18.856716 7f4b35bff6c0 Manual compaction at level-1 from '!items!xox7R7Uuuz0eGL0p' @ 132 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/12/01-09:36:46.681142 7fef57fff6c0 Recovering log #97
2023/12/01-09:36:46.692047 7fef57fff6c0 Delete type=3 #95
2023/12/01-09:36:46.692102 7fef57fff6c0 Delete type=0 #97
2023/12/01-09:37:12.120793 7fef56ffd6c0 Level-0 table #102: started
2023/12/01-09:37:12.120840 7fef56ffd6c0 Level-0 table #102: 0 bytes OK
2023/12/01-09:37:12.127110 7fef56ffd6c0 Delete type=0 #100
2023/12/01-09:37:12.127263 7fef56ffd6c0 Manual compaction at level-0 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
2023/12/01-09:37:12.127292 7fef56ffd6c0 Manual compaction at level-1 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
2025/03/14-14:12:15.672681 7fba4cff96c0 Recovering log #226
2025/03/14-14:12:15.776484 7fba4cff96c0 Delete type=3 #224
2025/03/14-14:12:15.776560 7fba4cff96c0 Delete type=0 #226
2025/03/14-14:12:43.132507 7fb7affff6c0 Level-0 table #231: started
2025/03/14-14:12:43.132565 7fb7affff6c0 Level-0 table #231: 0 bytes OK
2025/03/14-14:12:43.138828 7fb7affff6c0 Delete type=0 #229
2025/03/14-14:12:43.158208 7fb7affff6c0 Manual compaction at level-0 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.158251 7fb7affff6c0 Manual compaction at level-1 from '!items!0xdQs67JPsVrUyvp' @ 72057594037927935 : 1 .. '!items!xox7R7Uuuz0eGL0p' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

0
packs/peuples/000070.log Normal file
View File

BIN
packs/peuples/000072.ldb Normal file

Binary file not shown.

1
packs/peuples/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000068

0
packs/peuples/LOCK Normal file
View File

15
packs/peuples/LOG Normal file
View File

@ -0,0 +1,15 @@
2025/04/30-23:34:36.934886 7f4b37fff6c0 Recovering log #66
2025/04/30-23:34:36.945113 7f4b37fff6c0 Delete type=3 #64
2025/04/30-23:34:36.945238 7f4b37fff6c0 Delete type=0 #66
2025/04/30-23:48:18.940588 7f4b35bff6c0 Level-0 table #71: started
2025/04/30-23:48:18.943892 7f4b35bff6c0 Level-0 table #71: 5232 bytes OK
2025/04/30-23:48:18.951132 7f4b35bff6c0 Delete type=0 #69
2025/04/30-23:48:18.982821 7f4b35bff6c0 Manual compaction at level-0 from '!items!5onfuCZmzugZ3PMs' @ 72057594037927935 : 1 .. '!items!qAmsD4MHgywYj6XV' @ 0 : 0; will stop at (end)
2025/04/30-23:48:18.982870 7f4b35bff6c0 Manual compaction at level-1 from '!items!5onfuCZmzugZ3PMs' @ 72057594037927935 : 1 .. '!items!qAmsD4MHgywYj6XV' @ 0 : 0; will stop at '!items!qAmsD4MHgywYj6XV' @ 16 : 1
2025/04/30-23:48:18.982879 7f4b35bff6c0 Compacting 1@1 + 1@2 files
2025/04/30-23:48:18.986553 7f4b35bff6c0 Generated table #72@1: 4 keys, 5232 bytes
2025/04/30-23:48:18.986608 7f4b35bff6c0 Compacted 1@1 + 1@2 files => 5232 bytes
2025/04/30-23:48:18.992660 7f4b35bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/04/30-23:48:18.992762 7f4b35bff6c0 Delete type=2 #31
2025/04/30-23:48:18.992886 7f4b35bff6c0 Delete type=2 #71
2025/04/30-23:48:19.023804 7f4b35bff6c0 Manual compaction at level-1 from '!items!qAmsD4MHgywYj6XV' @ 16 : 1 .. '!items!qAmsD4MHgywYj6XV' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2025/03/14-14:12:16.838771 7fba4e7fc6c0 Recovering log #62
2025/03/14-14:12:16.935874 7fba4e7fc6c0 Delete type=3 #60
2025/03/14-14:12:16.935944 7fba4e7fc6c0 Delete type=0 #62
2025/03/14-14:12:43.190599 7fb7affff6c0 Level-0 table #67: started
2025/03/14-14:12:43.190626 7fb7affff6c0 Level-0 table #67: 0 bytes OK
2025/03/14-14:12:43.196678 7fb7affff6c0 Delete type=0 #65
2025/03/14-14:12:43.209556 7fb7affff6c0 Manual compaction at level-0 from '!items!5onfuCZmzugZ3PMs' @ 72057594037927935 : 1 .. '!items!qAmsD4MHgywYj6XV' @ 0 : 0; will stop at (end)
2025/03/14-14:12:43.209620 7fb7affff6c0 Manual compaction at level-1 from '!items!5onfuCZmzugZ3PMs' @ 72057594037927935 : 1 .. '!items!qAmsD4MHgywYj6XV' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

BIN
packs/pouvoirs/000153.ldb Normal file

Binary file not shown.

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