Compare commits

...

4 Commits

131 changed files with 840 additions and 530 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

View File

@ -12,7 +12,7 @@ export class HawkmoonActorSheet extends ActorSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
template: "systems/fvtt-hawkmoon-cyd/templates/actor-sheet.html",
width: 640,
@ -25,7 +25,7 @@ export class HawkmoonActorSheet extends ActorSheet {
/* -------------------------------------------- */
async getData() {
const objectData = duplicate(this.object)
const objectData = foundry.utils.duplicate(this.object)
let formData = {
title: this.title,
@ -39,17 +39,17 @@ export class HawkmoonActorSheet 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()),
monnaies: duplicate(this.actor.getMonnaies()),
protections: duplicate(this.actor.getArmors()),
historiques: duplicate(this.actor.getHistoriques() || []),
talents: duplicate(this.actor.getTalents() || []),
mutations: duplicate(this.actor.getMutations() || []),
armes: foundry.utils.duplicate(this.actor.getWeapons()),
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
protections: foundry.utils.duplicate(this.actor.getArmors()),
historiques: foundry.utils.duplicate(this.actor.getHistoriques() || []),
talents: foundry.utils.duplicate(this.actor.getTalents() || []),
mutations: foundry.utils.duplicate(this.actor.getMutations() || []),
talentsCell: this.getCelluleTalents(),
profils: duplicate(this.actor.getProfils() || []),
profils: foundry.utils.duplicate(this.actor.getProfils() || []),
combat: this.actor.getCombatValues(),
equipements: duplicate(this.actor.getEquipments()),
artefacts: duplicate(this.actor.getArtefacts()),
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
artefacts: foundry.utils.duplicate(this.actor.getArtefacts()),
richesse: this.actor.computeRichesse(),
coupDevastateur: this.actor.items.find(it => it.type =="talent" && it.name.toLowerCase() == "coup devastateur" && !it.system.used),
valeurEquipement: this.actor.computeValeurEquipement(),
@ -61,7 +61,8 @@ export class HawkmoonActorSheet extends ActorSheet {
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,
isGM: game.user.isGM
isGM: game.user.isGM,
config: game.system.hawkmoon.config
}
this.formData = formData;
@ -146,6 +147,23 @@ export class HawkmoonActorSheet extends ActorSheet {
let armeId = li.data("item-id")
this.actor.rollArmeOffensif(armeId)
})
html.find('.roll-assomer').click((event) => {
this.actor.rollAssomer()
})
html.find('.roll-coup-bas').click((event) => {
this.actor.rollCoupBas()
})
html.find('.roll-immobiliser').click((event) => {
this.actor.rollImmobiliser()
})
html.find('.roll-repousser').click((event) => {
this.actor.rollRepousser()
})
html.find('.roll-desengager').click((event) => {
this.actor.rollDesengager()
})
html.find('.roll-arme-degats').click((event) => {
const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id")

View File

@ -67,22 +67,22 @@ export class HawkmoonActor 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") {
let bonusDefense = this.getBonusDefenseFromTalents()
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
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.seuildefense + bonusDefense
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + (this.system.combat.monte ? 3 : 0)
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.seuildefense + bonusDefense + (this.system.combat.monte ? 3 : 0)
console.log("Arme", arme.system.totalDefensif, combat, arme.system.competence.system.niveau, arme.system.seuildefense, bonusDefense)
arme.system.isdefense = true
arme.system.isMelee = true
arme.system.isDistance = false
}
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
@ -146,7 +146,7 @@ export class HawkmoonActor 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)
@ -168,7 +168,7 @@ export class HawkmoonActor extends Actor {
/* ----------------------- --------------------- */
addMember(actorId) {
let members = duplicate(this.system.members)
let members = foundry.utils.duplicate(this.system.members)
members.push({ id: actorId })
this.update({ 'system.members': members })
}
@ -211,7 +211,7 @@ export class HawkmoonActor extends Actor {
vitesseTotal: this.getVitesseBase() + this.system.combat.vitessebonus,
defenseBase: this.getDefenseBase(),
protection: this.getProtection(),
defenseTotal: this.getDefenseBase() + this.system.combat.defensebonus + this.getProtection() - this.getTotalAdversite()
defenseTotal: this.getDefenseBase() + this.system.combat.defensebonus + this.getProtection() - this.getTotalAdversite() + (this.system.combat.defensetotale ? 3 : 0)
}
return combat
}
@ -235,21 +235,28 @@ export class HawkmoonActor extends Actor {
this.update({ 'system.sante.vigueur': vigueur })
}
}
super.prepareDerivedData()
}
/* -------------------------------------------- */
_preUpdate(changed, options, user) {
if (changed?.system?.sante?.etat && changed?.system?.sante?.etat != this.system.sante.etat) {
setTimeout(() => {
this.processCombativite(changed.system.sante)
}, 800)
}
super._preUpdate(changed, options, user);
}
/* -------------------------------------------- */
_onUpdate(data, options, user) {
super._onUpdate(data, options, user);
}
/* -------------------------------------------- */
getItemById(id) {
let item = this.items.find(item => item.id == id);
if (item) {
item = duplicate(item)
item = foundry.utils.duplicate(item)
}
return item;
}
@ -282,7 +289,7 @@ export class HawkmoonActor extends Actor {
checkAttribut(attribut, minLevel) {
let attr = this.system.attributs.find(at => at.labelnorm == attribut.toLowerCase())
if (attr && attr.value >= minLevel) {
return { isValid: true, attr: duplicate(attr) }
return { isValid: true, attr: foundry.utils.duplicate(attr) }
}
return { isValid: false }
}
@ -290,11 +297,11 @@ export class HawkmoonActor extends Actor {
checkAttributOrCompetenceLevel(compName, minLevel) {
let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase() && i.system.niveau >= minLevel)
if (comp) {
return { isValid: true, item: duplicate(comp) }
return { isValid: true, item: foundry.utils.duplicate(comp) }
} else {
for (let attrKey in this.system.attributs) {
if (this.system.attributs[attrKey].label.toLowerCase() == compName.toLowerCase() && this.system.attributs[attrKey].value >= minLevel) {
return { isValid: true, item: duplicate(this.system.attributs[attrKey]) }
return { isValid: true, item: foundry.utils.duplicate(this.system.attributs[attrKey]) }
}
}
}
@ -304,7 +311,7 @@ export class HawkmoonActor extends Actor {
addCompetenceBonus(compName, bonus, baCost) {
let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase())
if (comp) {
comp = duplicate(comp)
comp = foundry.utils.duplicate(comp)
comp.system.bonus = bonus
comp.system.baCost = baCost
return { isValid: true, item: comp }
@ -388,19 +395,28 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */
changeEtatCombativite(value) {
let sante = duplicate(this.system.sante)
if (value === "vaincu") {
value = 200
}
let sante = foundry.utils.duplicate(this.system.sante)
sante.etat += Number(value)
sante.etat = Math.max(sante.etat, 0)
sante.etat = Math.min(sante.etat, 5)
sante.etat = Math.min(sante.etat, this.system.sante.nbcombativite)
this.update({ 'system.sante': sante })
if (sante.etat == this.system.sante.nbcombativite) {
ChatMessage.create({ content: `<strong>${this.name} est vaincu !</strong>` })
}
this.processCombativite(sante)
}
/* -------------------------------------------- */
processCombativite(sante) {
sante = sante || foundry.utils.duplicate(this.system.sante)
// Gestion des états affaibli et très affaibli
if (sante.etat == this.system.sante.nbcombativite-2 || sante.etat == this.system.sante.nbcombativite-1) {
if (sante.etat == this.system.sante.nbcombativite-2 && this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "encaissement")) {
if (sante.etat == this.system.sante.nbcombativite - 2 || sante.etat == this.system.sante.nbcombativite - 1) {
if (sante.etat == this.system.sante.nbcombativite - 2 && this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "encaissement")) {
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge grâce à Encaissement. Pensez à les ajouter à la fin de la scène !</strong>` })
} else if (sante.etat == this.system.sante.nbcombativite-1 && this.items.find(item => item.type == "talent" && item.name.toLowerCase().includes("vaillant"))) {
} else if (sante.etat == this.system.sante.nbcombativite - 1 && this.items.find(item => item.type == "talent" && item.name.toLowerCase().includes("vaillant"))) {
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge grâce à Vaillant. Pensez à les ajouter à la fin de la scène !</strong>` })
} else {
ChatMessage.create({ content: `<strong>${this.name} subit 2 adversités rouge !</strong>` })
@ -422,13 +438,13 @@ export class HawkmoonActor 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 });
}
@ -450,9 +466,10 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */
async incDecAdversite(adv, incDec = 0) {
let adversite = duplicate(this.system.adversite)
let adversite = foundry.utils.duplicate(this.system.adversite)
adversite[adv] += Number(incDec)
adversite[adv] = Math.max(adversite[adv], 0)
adversite[adv] = Math.min(adversite[adv], 20)
this.update({ 'system.adversite': adversite })
}
/* -------------------------------------------- */
@ -497,7 +514,7 @@ export class HawkmoonActor 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 }])
}
@ -519,7 +536,7 @@ export class HawkmoonActor extends Actor {
}
if (arme.system.totalDefensif > maxDef) {
maxDef = arme.system.totalDefensif
bestArme = duplicate(arme)
bestArme = foundry.utils.duplicate(arme)
}
}
return bestArme
@ -534,7 +551,7 @@ export class HawkmoonActor extends Actor {
for (let auto of talent.system.automations) {
if (auto.eventtype === "prepare-roll") {
if (auto.competence.toLowerCase() == competence.name.toLowerCase()) {
talent = duplicate(talent)
talent = foundry.utils.duplicate(talent)
talent.system.bonus = auto.bonus
talent.system.baCost = auto.baCost
talents.push(talent)
@ -566,23 +583,33 @@ export class HawkmoonActor extends Actor {
rollData.nbAdversites = this.getTotalAdversite()
rollData.talents = []
rollData.attrKey2 = "none"
rollData.coupDevastateur = this.items.find(it => it.type =="talent" && it.name.toLowerCase() == "coup dévastateur" && !it.system.used)
rollData.coupDevastateur = this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "coup dévastateur" && !it.system.used)
rollData.hasAmbidextre = this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "ambidextre")
rollData.hasFeinte = this.system.bonneaventure.actuelle > 0 && this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "feinte")
rollData.isMonte = this.system.combat.monte
rollData.config = game.system.hawkmoon.config
if (attrKey) {
rollData.attrKey = attrKey
if (attrKey != "tochoose") {
rollData.actionImg = "systems/fvtt-hawkmoon-cyd/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.maitrises = rollData.competence.system.predilections.filter(p => p.maitrise)
rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
let maitrises = [{ key: "none", label: "Aucune" }]
rollData.competence.system.predilections.forEach(function (item) {
if (item.maitrise) {
maitrises.push({ key: item.id, label: item.name });
}
})
rollData.maitrises = maitrises // rollData.competence.system.predilections.filter(p => p.maitrise)
rollData.actionImg = rollData.competence?.img
rollData.talents = this.searchRelevantTalents(rollData.competence)
}
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
@ -619,6 +646,53 @@ export class HawkmoonActor extends Actor {
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollAssomer() {
let rollData = this.getCommonRollData("pui", undefined, "Filouterie")
rollData.assomer = true
rollData.conditionsCommunes = true
HawkmoonUtility.updateWithTarget(rollData)
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollCoupBas() {
let rollData = this.getCommonRollData("pui", undefined, "Mêlée")
rollData.coupBas = true
rollData.conditionsCommunes = true
HawkmoonUtility.updateWithTarget(rollData)
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollImmobiliser() {
let rollData = this.getCommonRollData("pui", undefined, "Mêlée")
rollData.immobiliser = true
rollData.conditionsCommunes = true
rollData.cibleconsciente = true
HawkmoonUtility.updateWithTarget(rollData)
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollRepousser() {
let rollData = this.getCommonRollData("pui", undefined, "Mêlée")
rollData.repousser = true
rollData.conditionsCommunes = true
rollData.cibleconsciente = true
HawkmoonUtility.updateWithTarget(rollData)
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollDesengager() {
let rollData = this.getCommonRollData("adr", undefined, "Mouvements")
rollData.desengager = true
rollData.conditionsCommunes = true
HawkmoonUtility.updateWithTarget(rollData)
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollArmeDegats(armeId, targetVigueur = undefined, rollDataInput = undefined) {
@ -634,26 +708,32 @@ export class HawkmoonActor extends Actor {
if (rollDataInput?.applyCoupDevastateur) {
bonus2 = Math.floor(this.system.attributs.pui.value / 2)
let talent = this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "coup dévastateur")
this.updateEmbeddedDocuments('Item', [{ _id: talent.id, 'system.used': true }])
this.updateEmbeddedDocuments('Item', [{ _id: talent.id, 'system.used': true }])
}
if (rollDataInput?.isHeroique) {
if (rollDataInput?.attaqueCharge) {
bonus = 5
}
roll = new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll({ async: false })
if (rollDataInput?.chargeCavalerie) {
bonus = 6
}
roll = await new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll()
} else {
if (rollDataInput?.attaqueCharge) {
bonus = 3
}
roll = new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll({ async: false })
if (rollDataInput?.chargeCavalerie) {
bonus = 4
}
roll = await new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll()
}
await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
let nbEtatPerdus = 0
if (targetVigueur) {
nbEtatPerdus = Math.floor(roll.total / targetVigueur)
}
console.log(roll)
//console.log(roll)
let rollData = {
arme: arme,
finalResult: roll.total,

View File

@ -14,10 +14,10 @@ export class HawkmoonAutomation {
this.__objectTypes = { }
Object.entries(game.data.model.Actor).forEach(kv => {
this.__objectTypes[kv[0]] = duplicate(kv[1])
this.__objectTypes[kv[0]] = foundry.utils.duplicate(kv[1])
})
Object.entries(game.data.model.Item).forEach(kv => {
this.__objectTypes[kv[0]] = duplicate(kv[1])
this.__objectTypes[kv[0]] = foundry.utils.duplicate(kv[1])
})
}

View File

@ -15,7 +15,7 @@ export class HawkmoonCelluleSheet extends ActorSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
template: "systems/fvtt-hawkmoon-cyd/templates/cellule-sheet.html",
width: 640,
@ -28,7 +28,7 @@ export class HawkmoonCelluleSheet extends ActorSheet {
/* -------------------------------------------- */
async getData() {
const objectData = duplicate(this.object)
const objectData = foundry.utils.duplicate(this.object)
let formData = {
title: this.title,
@ -41,15 +41,16 @@ export class HawkmoonCelluleSheet extends ActorSheet {
system: objectData.system,
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
limited: this.object.limited,
talents: duplicate(this.actor.getTalents() || {}),
ressources: duplicate(this.actor.getRessources()),
contacts: duplicate(this.actor.getContacts()),
talents: foundry.utils.duplicate(this.actor.getTalents() || {}),
ressources: foundry.utils.duplicate(this.actor.getRessources()),
contacts: foundry.utils.duplicate(this.actor.getContacts()),
members: this.getMembers(),
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,
isGM: game.user.isGM
isGM: game.user.isGM,
config: game.system.hawkmoon.config
}
this.formData = formData;

111
modules/hawkmoon-config.js Normal file
View File

@ -0,0 +1,111 @@
export const HAWKMOON_CONFIG = {
optionsDifficulte: [
{ key: "0", label: "Aucune/Inconnue" },
{ key: "5", label: "Facile (5)" },
{ key: "10", label: "Moyenne (10)" },
{ key: "15", label: "Ardue (15)" },
{ key: "20", label: "Hasardeuse (20)" },
{ key: "25", label: "Insensée (25)" },
{ key: "30", label: "Pure Folie (30)" }
],
optionsDistanceTir: [
{ key: "porteecourte", label: "Courte ({protectionDefenseur}+5)" },
{ key: "porteemoyenne", label: "Moyenne ({protectionDefenseur}+9)" },
{ key: "porteelongue", label: "Longue ({protectionDefenseur}+14)" }
],
optionsBonusMalus: [
{ key: "-4", label: "-4" },
{ key: "-3", label: "-3" },
{ key: "-2", label: "-2" },
{ key: "-1", label: "-1" },
{ key: "0", label: "0" },
{ key: "1", label: "+1" },
{ key: "2", label: "+2" },
{ key: "3", label: "+3" },
{ key: "4", label: "+4" }
],
optionsTailleCible: [
{ key: "normal", label: "Normal (SD+0)" },
{ key: "main", label: "Main (SD+10)" },
{ key: "enfant", label: "Enfant (SD+3)" },
{ key: "maison", label: "Maison (SD-10)" }
],
optionsCouvert: [
{ key: "aucun", label: "Aucun" },
{ key: "leger", label: "Léger (SD+5)" },
{ key: "complet", label: "Quasi complet (SD+10)" }
],
optionsTireurDeplacement: [
{ key: "immobile", label: "Immobile (SD+0)" },
{ key: "lent", label: "Lent (SD+3)" },
{ key: "rapide", label: "Rapide (SD+5)" }
],
optionsSoutiens: [
{ key: "0", label: "Aucun" },
{ key: "1", label: "Un soutien (+3)" },
{ key: "2", label: "Deux soutiens (+4)" },
{ key: "3", label: "Trois soutiens (+5)" }
],
optionsStatutResistant: [
{ key: "commun", label: "Commun" },
{ key: "clandestin", label: "Clandestin" },
{ key: "insurge", label: "Insurgé" }
],
optionsTypeArme: [
{key: "contact", label: "Arme de contact"},
{key: "contactjet", label: "Arme de contact et de Jet"},
{key: "jet", label: "Arme de Jet"},
{key: "tir", label: "Arme de Tir"}
],
optionsArtefactBranche: [
{key: "alchimie", label: "Alchimie"},
{key: "biologie", label: "Biologie"},
{key: "electricite", label: "Electricité"},
{key: "mecanique", label: "Mécanique"},
{key: "scienceesprit", label: "Science de l'Esprit"}
],
optionsArtefactBranche2: [
{key: "none", label: "Aucune"},
{key: "alchimie", label: "Alchimie"},
{key: "biologie", label: "Biologie"},
{key: "electricite", label: "Electricité"},
{key: "mecanique", label: "Mécanique"},
{key: "scienceesprit", label: "Science de l'Esprit"}
],
optionsTypeContact: [
{key: "contact", label: "Contact"},
{key: "allie", label: "Allié"}
],
optionsTypeMutation: [
{key: "tares_communes", label: "Tares et Malformations communes"},
{key: "evolutions_communes", label: "Evolutions communes"},
{key: "tares_rares", label: "Tares et Malformations rares"},
{key: "evolutions_rares", label: "Evolutions rares"},
{key: "tares_majeures", label: "Tares et Maformations majeures"},
{key: "evolutions_majeures", label: "Evolutions majeures"},
{key: "tares_except", label: "Tares et Malformations exceptionnelles"},
{key: "evolutions_except", label: "Evolutions exceptionnelles"}
],
optionsTypeTalent: [
{key: "personnage", label: "Personnage"},
{key: "cellule", label: "Cellule"},
{key: "traitespece", label: "Trait d'espèce"}
],
optionsUseTalent: [
{key: "permanent", label: "Permanent"},
{key: "sceance", label: "Une fois par scéance"},
{key: "scenario", label: "Une fois par scénario"},
{key: "jour", label: "Une fois par jour"},
{key: "unique", label: "Unique"}
],
optionsAutomationEvent: [
{key: "on-drop", label: "Drop sur l'acteur"},
{key: "prepare-roll", label: "Préparation d'un jet"},
{key: "bonus-permanent", label: "Bonus permanent"}
],
optionsBonusPermanent: [
{key: "vigueur", label: "Vigueur"},
{key: "bonus-defensif", label: "Bonus au Seuil de Défense"}
]
}

View File

@ -13,7 +13,7 @@ export class HawkmoonCreatureSheet extends HawkmoonActorSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
template: "systems/fvtt-hawkmoon-cyd/templates/creature-sheet.html",
width: 640,

View File

@ -9,7 +9,7 @@ export class HawkmoonItemSheet extends ItemSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-hawkmoon-cyd", "sheet", "item"],
template: "systems/fvtt-hawkmoon-cyd/templates/item-sheet.html",
dragDrop: [{ dragSelector: null, dropSelector: null }],
@ -48,7 +48,7 @@ export class HawkmoonItemSheet extends ItemSheet {
/* -------------------------------------------- */
async getData() {
const objectData = duplicate(this.object)
const objectData = foundry.utils.duplicate(this.object)
let formData = {
title: this.title,
id: this.id,
@ -64,7 +64,8 @@ export class HawkmoonItemSheet extends ItemSheet {
owner: this.document.isOwner,
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
mr: (this.object.type == 'specialisation'),
isGM: game.user.isGM
isGM: game.user.isGM,
config: game.system.hawkmoon.config
}
if ( objectData.type == "don") {
@ -89,7 +90,7 @@ export class HawkmoonItemSheet extends ItemSheet {
/* -------------------------------------------- */
postItem() {
let chatData = duplicate(HawkmoonUtility.data(this.item));
let chatData = foundry.utils.duplicate(HawkmoonUtility.data(this.item));
if (this.actor) {
chatData.actor = { id: this.actor.id };
}
@ -132,7 +133,7 @@ export class HawkmoonItemSheet extends ItemSheet {
html.find('.edit-predilection').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
pred[index].id = pred[index].id || randomID(16)
this.object.update( { 'system.predilections': pred })
@ -140,7 +141,7 @@ export class HawkmoonItemSheet extends ItemSheet {
html.find('.edit-predilection-description').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].description = ev.currentTarget.value
pred[index].id = pred[index].id || randomID(16)
this.object.update( { 'system.predilections': pred })
@ -148,7 +149,7 @@ export class HawkmoonItemSheet extends ItemSheet {
html.find('.predilection-acquise').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].acquise = ev.currentTarget.checked
pred[index].id = pred[index].id || randomID(16)
this.object.update( { 'system.predilections': pred })
@ -156,7 +157,7 @@ export class HawkmoonItemSheet extends ItemSheet {
html.find('.predilection-maitrise').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].maitrise = ev.currentTarget.checked
pred[index].id = pred[index].id || randomID(16)
this.object.update( { 'system.predilections': pred })
@ -164,41 +165,41 @@ export class HawkmoonItemSheet extends ItemSheet {
html.find('.predilection-used').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
pred[index].id = pred[index].id || randomID(16)
this.object.update( { 'system.predilections': pred })
})
html.find('#add-predilection').click(ev => {
let pred = duplicate(this.object.system.predilections)
let pred = foundry.utils.duplicate(this.object.system.predilections)
pred.push( { name: "Nouvelle prédilection", id: randomID(16), used: false })
this.object.update( { 'system.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( { 'system.predilections': pred })
})
html.find('#add-automation').click(ev => {
let autom = duplicate(this.object.system.automations)
let autom = foundry.utils.duplicate(this.object.system.automations)
autom.push( { eventtype: "on-drop", name: "Automatisation 1", bonusname: "vigueur", bonus: 0, competence: "", minLevel: 0, baCost: 0, id: randomID(16) })
this.object.update( { 'system.automations': autom })
})
html.find('.delete-automation').click(ev => {
const li = $(ev.currentTarget).parents(".automation-item")
let index = li.data("automation-index")
let autom = duplicate(this.object.system.automations)
let autom = foundry.utils.duplicate(this.object.system.automations)
autom.splice(index,1)
this.object.update( { 'system.automations': autom })
})
html.find('.automation-edit-field').change(ev => {
let index = $(ev.currentTarget).data("automation-index")
let field = $(ev.currentTarget).data("automation-field")
let auto = duplicate(this.object.system.automations)
let auto = foundry.utils.duplicate(this.object.system.automations)
auto[index][field] = ev.currentTarget.value
auto[index].id = auto[index].id || randomID(16)
this.object.update( { 'system.automations': auto })

View File

@ -18,6 +18,7 @@ import { HawkmoonCombat } from "./hawkmoon-combat.js";
import { HawkmoonItem } from "./hawkmoon-item.js";
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
import { HawkmoonTokenHud } from "./hawkmoon-hud.js";
import { HAWKMOON_CONFIG } from "./hawkmoon-config.js";
/* -------------------------------------------- */
/* Foundry VTT Initialization */
@ -50,7 +51,8 @@ Hooks.once("init", async function () {
CONFIG.Item.documentClass = HawkmoonItem
game.system.hawkmoon = {
HawkmoonUtility,
HawkmoonAutomation
HawkmoonAutomation,
config : HAWKMOON_CONFIG
}
/* -------------------------------------------- */
@ -82,6 +84,19 @@ function welcomeMessage() {
` });
}
/* -------------------------------------------- */
async function importDefaultScene() {
let exists = game.scenes.find(j => j.name == "Accueil");
if (!exists) {
const scenes = await HawkmoonUtility.loadCompendium("fvtt-hawkmoon.scenes")
let newDocuments = scenes.filter(i => i.name == "Accueil");
if (newDocuments) {
await game.scenes.documentClass.create(newDocuments);
game.scenes.find(i => i.name == "Accueil").activate();
}
}
}
/* -------------------------------------------- */
/* Foundry VTT Initialization */
/* -------------------------------------------- */
@ -104,7 +119,8 @@ Hooks.once("ready", function () {
}).catch(err=>
console.log("No stats available, giving up.")
)
importDefaultScene()
welcomeMessage()
});

View File

@ -60,7 +60,8 @@ export class HawkmoonRollDialog extends Dialog {
html.find('#modificateur').change(async (event) => {
this.rollData.modificateur = Number(event.currentTarget.value)
})
html.find('#difficulte').change(async (event) => {
html.find('#difficulte').change( (event) => {
console.log("Difficulte: " + event.currentTarget.value)
this.rollData.difficulte = Number(event.currentTarget.value)
})
html.find('#attrKey').change(async (event) => {
@ -93,6 +94,15 @@ export class HawkmoonRollDialog extends Dialog {
html.find('#defenseur-au-sol').change((event) => {
this.rollData.defenseurAuSol = event.currentTarget.checked
})
html.find('#ambidextre-1').change((event) => {
this.rollData.ambidextre1 = event.currentTarget.checked
})
html.find('#ambidextre-2').change((event) => {
this.rollData.ambidextre2 = event.currentTarget.checked
})
html.find('#attaque-monte').change((event) => {
this.rollData.attqueMonte = event.currentTarget.checked
})
html.find('#defenseur-aveugle').change((event) => {
this.rollData.defenseurAveugle = event.currentTarget.checked
})
@ -108,6 +118,21 @@ export class HawkmoonRollDialog extends Dialog {
html.find('#attaque-charge').change((event) => {
this.rollData.attaqueCharge = event.currentTarget.checked
})
html.find('#charge-cavalerie').change((event) => {
this.rollData.chargeCavalerie = event.currentTarget.checked
})
html.find('#attaquants-multiple').change((event) => {
this.rollData.attaquantsMultiples = event.currentTarget.checked
})
html.find('#soutiens').change((event) => {
this.rollData.soutiens = Number(event.currentTarget.value)
})
html.find('#feinte').change((event) => {
this.rollData.feinte = event.currentTarget.checked
})
html.find('#contenir').change((event) => {
this.rollData.contenir = event.currentTarget.checked
})
html.find('#attaque-desarme').change((event) => {
this.rollData.attaqueDesarme = event.currentTarget.checked
})

View File

@ -114,6 +114,26 @@ export class HawkmoonUtility {
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp"
let logoImg = document.querySelector('#pause').children[0]
logoImg.setAttribute('style', `content: url(${logoPause})`)
game.system.hawkmoon.config.listeNiveauSkill = this.createDirectOptionList(0, 10)
game.system.hawkmoon.config.listeNiveauCreature = this.createDirectOptionList(0, 35)
game.system.hawkmoon.config.listeNiveauContact = this.createDirectOptionList(1, 3)
}
/* -------------------------------------------- */
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;
}
/* -------------------------------------------- */
@ -140,9 +160,9 @@ export class HawkmoonUtility {
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData)
let actor = HawkmoonUtility.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))
HawkmoonUtility.rollHawkmoon(rollData)
})
@ -150,14 +170,14 @@ export class HawkmoonUtility {
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData)
let actor = HawkmoonUtility.getActorFromRollData(rollData)
actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData)
})
html.on("click", '.roll-chat-degat-devastateur', async event => {
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData)
let actor = HawkmoonUtility.getActorFromRollData(rollData)
rollData.applyCoupDevastateur = true
actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData)
})
@ -172,10 +192,7 @@ export class HawkmoonUtility {
'systems/fvtt-hawkmoon-cyd/templates/partial-item-header.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-item-description.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-item-nav.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-list-niveau.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-list-niveau-creature.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-item-prix.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-sante-etat.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-automation.html',
'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html',
]
@ -256,7 +273,7 @@ export class HawkmoonUtility {
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;
}
@ -364,10 +381,10 @@ export class HawkmoonUtility {
}
if (!rollData.attr) {
rollData.actionImg = "systems/fvtt-hawkmoon-cyd/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.attrKey2 != "none") {
rollData.attr2 = duplicate(actor.system.attributs[rollData.attrKey2])
rollData.attr2 = foundry.utils.duplicate(actor.system.attributs[rollData.attrKey2])
}
if (rollData.maitriseId != "none") {
@ -379,7 +396,7 @@ export class HawkmoonUtility {
//console.log("BEFORE COMP", rollData)
if (rollData.competence) {
rollData.predilections = duplicate(rollData.competence.system.predilections || [])
rollData.predilections = foundry.utils.duplicate(rollData.competence.system.predilections || [])
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
@ -411,6 +428,16 @@ export class HawkmoonUtility {
if (rollData.bonusArmeNaturelle) {
rollData.diceFormula += `+${rollData.bonusArmeNaturelle}`
}
if (rollData.attaquantsMultiples) {
rollData.diceFormula += `+3`
}
if (rollData.hasAmbidextre) {
if ( rollData.attaqueAmbidextre1) {
rollData.diceFormula += `-3`
} else if ( rollData.attaqueAmbidextre2) {
rollData.diceFormula += `-5`
}
}
if (rollData.defenseurAuSol) {
rollData.diceFormula += `+3`
}
@ -426,7 +453,10 @@ export class HawkmoonUtility {
if (rollData.defenseurImmobilise) {
rollData.diceFormula += `+5`
}
if (rollData.soutiens > 0) { // 1 soutien = +3, 2 soutiens = +4, 3 soutiens = +5
rollData.diceFormula += `+${rollData.soutiens+2}`
}
if (rollData.arme?.system.isDistance) {
rollData.difficulte = __distanceDifficulte[rollData.distanceTir]
rollData.difficulte += __tireurDeplacement[rollData.tireurDeplacement]
@ -434,21 +464,25 @@ export class HawkmoonUtility {
rollData.difficulte += __tailleCible[rollData.tailleCible]
rollData.difficulte += rollData.cibleDeplace ? 3 : 0
rollData.difficulte += rollData.cibleCaC ? 3 : 0
rollData.difficulte += rollData.protectionDefenseur
}
if (rollData.attaqueDesarme) {
rollData.difficulte += 10
}
// Ajout adversités
rollData.diceFormula += `-${rollData.nbAdversites}`
if (rollData.arme && rollData.arme.type == "arme") {
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
}
// Gestion de la feinte éventuelle
rollData.nbCombativitePerdu = 1
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)
console.log(">>>> ", myRoll)
rollData.finalResult = myRoll.total
@ -456,15 +490,26 @@ export class HawkmoonUtility {
if (rollData.isInit) {
actor.setFlag("world", "last-initiative", rollData.finalResult)
}
if (rollData.feinte) {
actor.changeBonneAventure(-1)
if ( rollData.isHeroique) {
rollData.nbCombativitePerdu = "vaincu"
} else if ( rollData.isSuccess) {
rollData.nbCombativitePerdu = 2
}
}
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData)
}, rollData)
if (rollData.arme && rollData.isSuccess && rollData.defenderTokenId) {
this.applyCombativite(rollData, 1)
if ( (rollData.coupBas || rollData.arme) && rollData.isSuccess && rollData.defenderTokenId) {
this.applyCombativite(rollData, rollData.nbCombativitePerdu)
}
if (rollData.coupBas && rollData.isSuccess && rollData.defenderTokenId) {
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
defender.incDecAdversite("bleue", -2)
}
}
/* -------------------------------------------- */
@ -483,9 +528,9 @@ export class HawkmoonUtility {
static async bonusRollHawkmoon(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
@ -519,7 +564,7 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
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);
@ -583,7 +628,7 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static getBasicRollData() {
let rollData = {
rollId: randomID(16),
rollId: foundry.utils.randomID(16),
rollMode: game.settings.get("core", "rollMode"),
modificateursOptions: this.getModificateurOptions(),
pointAmeOptions: this.getPointAmeOptions(),
@ -601,7 +646,12 @@ export class HawkmoonUtility {
cibleCouvert: "aucun",
distanceTir: "porteemoyenne",
attaqueCharge: false,
attaqueDesarme: false
attaqueDesarme: false,
attaqueAmbidextre1 : false,
attaqueAmbidextre2 : false,
chargeCavalerie : false,
contenir : false,
soutiens : 0
}
return rollData
}
@ -615,9 +665,17 @@ export class HawkmoonUtility {
rollData.armeDefense = defender.getBestDefenseValue()
rollData.targetVigueur = defender.getVigueur()
rollData.protectionDefenseur = defender.getProtection()
if (rollData.armeDefense) {
if (rollData.immobiliser || rollData.repousser) {
let combatValues = defender.getCombatValues()
rollData.difficulte = combatValues.defenseTotal + (rollData.armeDefense && rollData.cibleconsciente ? 5 : 0)
} else if (rollData.coupBas) {
let combatValues = defender.getCombatValues()
rollData.difficulte = combatValues.defenseTotal
}else if ( rollData.assomer) {
rollData.difficulte = 3 + (defender.system.attributs.tre.value * 2)
} else if (rollData.armeDefense) {
rollData.difficulte = rollData.armeDefense.system.totalDefensif
if ( !rollData.arme.system.armenaturelle && !rollData.arme.system.armefortune ){
if ( !rollData.desengager && !rollData.arme.system.armenaturelle && !rollData.arme.system.armefortune ){
if (rollData.armeDefense.system.armenaturelle || rollData.armeDefense.system.armefortune) {
rollData.bonusArmeNaturelle = 3
}
@ -639,7 +697,7 @@ export class HawkmoonUtility {
let msg = game.messages.get(msgId)
if (msg) {
let rollData = msg.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData)
let actor = HawkmoonUtility.getActorFromRollData(rollData)
actor.changeBonneAventure(changed)
rollData.isReroll = true
rollData.textBonus = "Bonus de Points d'Aventure"
@ -658,7 +716,7 @@ export class HawkmoonUtility {
let msg = game.messages.get(msgId)
if (msg) {
let rollData = msg.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData)
let actor = HawkmoonUtility.getActorFromRollData(rollData)
actor.changeEclat(changed)
rollData.isReroll = true
rollData.textBonus = "Bonus d'Eclat"
@ -677,13 +735,13 @@ export class HawkmoonUtility {
let canApplyBA = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData)
let actor = HawkmoonUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getBonneAventure() > 0)
}
let canApplyPE = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData)
let actor = HawkmoonUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getEclat() > 0)
}
options.push(

View File

@ -1 +1 @@
MANIFEST-000112
MANIFEST-000185

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.754352 7f04234006c0 Recovering log #110
2024/02/24-17:02:14.807801 7f04234006c0 Delete type=3 #108
2024/02/24-17:02:14.807944 7f04234006c0 Delete type=0 #110
2024/02/24-17:02:44.940487 7f0421a006c0 Level-0 table #115: started
2024/02/24-17:02:44.940520 7f0421a006c0 Level-0 table #115: 0 bytes OK
2024/02/24-17:02:44.990896 7f0421a006c0 Delete type=0 #113
2024/02/24-17:02:44.991050 7f0421a006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.991066 7f0421a006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/05/05-15:08:28.474868 7fc3f4c006c0 Recovering log #183
2024/05/05-15:08:28.506757 7fc3f4c006c0 Delete type=3 #181
2024/05/05-15:08:28.506853 7fc3f4c006c0 Delete type=0 #183
2024/05/05-15:09:14.527216 7fc3f32006c0 Level-0 table #188: started
2024/05/05-15:09:14.527241 7fc3f32006c0 Level-0 table #188: 0 bytes OK
2024/05/05-15:09:14.534234 7fc3f32006c0 Delete type=0 #186
2024/05/05-15:09:14.547770 7fc3f32006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/05/05-15:09:14.547837 7fc3f32006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.161901 7f0422a006c0 Recovering log #106
2024/02/24-15:27:21.172307 7f0422a006c0 Delete type=3 #104
2024/02/24-15:27:21.172420 7f0422a006c0 Delete type=0 #106
2024/02/24-15:54:11.160992 7f0421a006c0 Level-0 table #111: started
2024/02/24-15:54:11.161043 7f0421a006c0 Level-0 table #111: 0 bytes OK
2024/02/24-15:54:11.168984 7f0421a006c0 Delete type=0 #109
2024/02/24-15:54:11.169375 7f0421a006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.169407 7f0421a006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/05/05-15:07:06.889016 7f87a54006c0 Recovering log #179
2024/05/05-15:07:06.899014 7f87a54006c0 Delete type=3 #177
2024/05/05-15:07:06.899098 7f87a54006c0 Delete type=0 #179
2024/05/05-15:07:55.448193 7f879e4006c0 Level-0 table #184: started
2024/05/05-15:07:55.448224 7f879e4006c0 Level-0 table #184: 0 bytes OK
2024/05/05-15:07:55.485470 7f879e4006c0 Delete type=0 #182
2024/05/05-15:07:55.485735 7f879e4006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/05/05-15:07:55.485776 7f879e4006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/armes/000164.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112
MANIFEST-000185

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.261072 7f0422a006c0 Recovering log #110
2024/02/24-17:02:14.336608 7f0422a006c0 Delete type=3 #108
2024/02/24-17:02:14.336726 7f0422a006c0 Delete type=0 #110
2024/02/24-17:02:44.653079 7f0421a006c0 Level-0 table #115: started
2024/02/24-17:02:44.653100 7f0421a006c0 Level-0 table #115: 0 bytes OK
2024/02/24-17:02:44.684887 7f0421a006c0 Delete type=0 #113
2024/02/24-17:02:44.722405 7f0421a006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.722456 7f0421a006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/05/05-15:08:28.197636 7fc3f42006c0 Recovering log #183
2024/05/05-15:08:28.228972 7fc3f42006c0 Delete type=3 #181
2024/05/05-15:08:28.229102 7fc3f42006c0 Delete type=0 #183
2024/05/05-15:09:14.474463 7fc3f32006c0 Level-0 table #188: started
2024/05/05-15:09:14.474545 7fc3f32006c0 Level-0 table #188: 0 bytes OK
2024/05/05-15:09:14.480529 7fc3f32006c0 Delete type=0 #186
2024/05/05-15:09:14.486879 7fc3f32006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/05/05-15:09:14.486980 7fc3f32006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.061930 7f0428e006c0 Recovering log #106
2024/02/24-15:27:21.072272 7f0428e006c0 Delete type=3 #104
2024/02/24-15:27:21.072358 7f0428e006c0 Delete type=0 #106
2024/02/24-15:54:11.103417 7f0421a006c0 Level-0 table #111: started
2024/02/24-15:54:11.103455 7f0421a006c0 Level-0 table #111: 0 bytes OK
2024/02/24-15:54:11.109891 7f0421a006c0 Delete type=0 #109
2024/02/24-15:54:11.118172 7f0421a006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.118244 7f0421a006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/05/05-15:07:06.785818 7f879fe006c0 Recovering log #179
2024/05/05-15:07:06.796001 7f879fe006c0 Delete type=3 #177
2024/05/05-15:07:06.796120 7f879fe006c0 Delete type=0 #179
2024/05/05-15:07:54.984066 7f879e4006c0 Level-0 table #184: started
2024/05/05-15:07:54.984099 7f879e4006c0 Level-0 table #184: 0 bytes OK
2024/05/05-15:07:55.021086 7f879e4006c0 Delete type=0 #182
2024/05/05-15:07:55.063815 7f879e4006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/05/05-15:07:55.063883 7f879e4006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/armes/MANIFEST-000185 Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112
MANIFEST-000185

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.147016 7f0422a006c0 Recovering log #110
2024/02/24-17:02:14.207871 7f0422a006c0 Delete type=3 #108
2024/02/24-17:02:14.207942 7f0422a006c0 Delete type=0 #110
2024/02/24-17:02:44.579150 7f0421a006c0 Level-0 table #115: started
2024/02/24-17:02:44.579252 7f0421a006c0 Level-0 table #115: 0 bytes OK
2024/02/24-17:02:44.616456 7f0421a006c0 Delete type=0 #113
2024/02/24-17:02:44.722366 7f0421a006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.722432 7f0421a006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/05/05-15:08:28.128774 7fc3f4c006c0 Recovering log #183
2024/05/05-15:08:28.159335 7fc3f4c006c0 Delete type=3 #181
2024/05/05-15:08:28.159402 7fc3f4c006c0 Delete type=0 #183
2024/05/05-15:09:14.447833 7fc3f32006c0 Level-0 table #188: started
2024/05/05-15:09:14.447883 7fc3f32006c0 Level-0 table #188: 0 bytes OK
2024/05/05-15:09:14.453996 7fc3f32006c0 Delete type=0 #186
2024/05/05-15:09:14.460588 7fc3f32006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/05/05-15:09:14.460630 7fc3f32006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.032928 7f0428e006c0 Recovering log #106
2024/02/24-15:27:21.043854 7f0428e006c0 Delete type=3 #104
2024/02/24-15:27:21.043981 7f0428e006c0 Delete type=0 #106
2024/02/24-15:54:11.088997 7f0421a006c0 Level-0 table #111: started
2024/02/24-15:54:11.089081 7f0421a006c0 Level-0 table #111: 0 bytes OK
2024/02/24-15:54:11.096233 7f0421a006c0 Delete type=0 #109
2024/02/24-15:54:11.118114 7f0421a006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.118212 7f0421a006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/05/05-15:07:06.761129 7f879fe006c0 Recovering log #179
2024/05/05-15:07:06.771466 7f879fe006c0 Delete type=3 #177
2024/05/05-15:07:06.771569 7f879fe006c0 Delete type=0 #179
2024/05/05-15:07:54.904730 7f879e4006c0 Level-0 table #184: started
2024/05/05-15:07:54.904818 7f879e4006c0 Level-0 table #184: 0 bytes OK
2024/05/05-15:07:54.941897 7f879e4006c0 Delete type=0 #182
2024/05/05-15:07:55.063762 7f879e4006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/05/05-15:07:55.063849 7f879e4006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112
MANIFEST-000185

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.032746 7f0422a006c0 Recovering log #110
2024/02/24-17:02:14.083633 7f0422a006c0 Delete type=3 #108
2024/02/24-17:02:14.083731 7f0422a006c0 Delete type=0 #110
2024/02/24-17:02:44.458715 7f0421a006c0 Level-0 table #115: started
2024/02/24-17:02:44.458743 7f0421a006c0 Level-0 table #115: 0 bytes OK
2024/02/24-17:02:44.496165 7f0421a006c0 Delete type=0 #113
2024/02/24-17:02:44.578914 7f0421a006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.579004 7f0421a006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/05/05-15:08:28.059969 7fc3f42006c0 Recovering log #183
2024/05/05-15:08:28.090803 7fc3f42006c0 Delete type=3 #181
2024/05/05-15:08:28.090980 7fc3f42006c0 Delete type=0 #183
2024/05/05-15:09:14.441351 7fc3f32006c0 Level-0 table #188: started
2024/05/05-15:09:14.441377 7fc3f32006c0 Level-0 table #188: 0 bytes OK
2024/05/05-15:09:14.447653 7fc3f32006c0 Delete type=0 #186
2024/05/05-15:09:14.460578 7fc3f32006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/05/05-15:09:14.460613 7fc3f32006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.005371 7f0428e006c0 Recovering log #106
2024/02/24-15:27:21.017229 7f0428e006c0 Delete type=3 #104
2024/02/24-15:27:21.017431 7f0428e006c0 Delete type=0 #106
2024/02/24-15:54:11.070055 7f0421a006c0 Level-0 table #111: started
2024/02/24-15:54:11.070105 7f0421a006c0 Level-0 table #111: 0 bytes OK
2024/02/24-15:54:11.076878 7f0421a006c0 Delete type=0 #109
2024/02/24-15:54:11.088751 7f0421a006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.088816 7f0421a006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/05/05-15:07:06.735150 7f879fe006c0 Recovering log #179
2024/05/05-15:07:06.746252 7f879fe006c0 Delete type=3 #177
2024/05/05-15:07:06.746373 7f879fe006c0 Delete type=0 #179
2024/05/05-15:07:54.867722 7f879e4006c0 Level-0 table #184: started
2024/05/05-15:07:54.867757 7f879e4006c0 Level-0 table #184: 0 bytes OK
2024/05/05-15:07:54.904354 7f879e4006c0 Delete type=0 #182
2024/05/05-15:07:54.904606 7f879e4006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/05/05-15:07:54.904643 7f879e4006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/equipement/000164.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112
MANIFEST-000185

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.437580 7f0422a006c0 Recovering log #110
2024/02/24-17:02:14.523339 7f0422a006c0 Delete type=3 #108
2024/02/24-17:02:14.523459 7f0422a006c0 Delete type=0 #110
2024/02/24-17:02:44.791691 7f0421a006c0 Level-0 table #115: started
2024/02/24-17:02:44.791718 7f0421a006c0 Level-0 table #115: 0 bytes OK
2024/02/24-17:02:44.828354 7f0421a006c0 Delete type=0 #113
2024/02/24-17:02:44.865482 7f0421a006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.865534 7f0421a006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/05/05-15:08:28.265384 7fc3f4c006c0 Recovering log #183
2024/05/05-15:08:28.295246 7fc3f4c006c0 Delete type=3 #181
2024/05/05-15:08:28.295309 7fc3f4c006c0 Delete type=0 #183
2024/05/05-15:09:14.480663 7fc3f32006c0 Level-0 table #188: started
2024/05/05-15:09:14.480690 7fc3f32006c0 Level-0 table #188: 0 bytes OK
2024/05/05-15:09:14.486637 7fc3f32006c0 Delete type=0 #186
2024/05/05-15:09:14.486900 7fc3f32006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/05/05-15:09:14.486961 7fc3f32006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.088831 7f0428e006c0 Recovering log #106
2024/02/24-15:27:21.099682 7f0428e006c0 Delete type=3 #104
2024/02/24-15:27:21.099779 7f0428e006c0 Delete type=0 #106
2024/02/24-15:54:11.125392 7f0421a006c0 Level-0 table #111: started
2024/02/24-15:54:11.125461 7f0421a006c0 Level-0 table #111: 0 bytes OK
2024/02/24-15:54:11.132402 7f0421a006c0 Delete type=0 #109
2024/02/24-15:54:11.146985 7f0421a006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.147070 7f0421a006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/05/05-15:07:06.811789 7f879fe006c0 Recovering log #179
2024/05/05-15:07:06.821907 7f879fe006c0 Delete type=3 #177
2024/05/05-15:07:06.821963 7f879fe006c0 Delete type=0 #179
2024/05/05-15:07:55.100066 7f879e4006c0 Level-0 table #184: started
2024/05/05-15:07:55.100142 7f879e4006c0 Level-0 table #184: 0 bytes OK
2024/05/05-15:07:55.137073 7f879e4006c0 Delete type=0 #182
2024/05/05-15:07:55.216621 7f879e4006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/05/05-15:07:55.216687 7f879e4006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 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-000112
MANIFEST-000185

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.210347 7f04234006c0 Recovering log #110
2024/02/24-17:02:14.257923 7f04234006c0 Delete type=3 #108
2024/02/24-17:02:14.257978 7f04234006c0 Delete type=0 #110
2024/02/24-17:02:44.616568 7f0421a006c0 Level-0 table #115: started
2024/02/24-17:02:44.616772 7f0421a006c0 Level-0 table #115: 0 bytes OK
2024/02/24-17:02:44.652984 7f0421a006c0 Delete type=0 #113
2024/02/24-17:02:44.722386 7f0421a006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.722444 7f0421a006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/05/05-15:08:28.161503 7fc3f56006c0 Recovering log #183
2024/05/05-15:08:28.194742 7fc3f56006c0 Delete type=3 #181
2024/05/05-15:08:28.194855 7fc3f56006c0 Delete type=0 #183
2024/05/05-15:09:14.454182 7fc3f32006c0 Level-0 table #188: started
2024/05/05-15:09:14.454242 7fc3f32006c0 Level-0 table #188: 0 bytes OK
2024/05/05-15:09:14.460452 7fc3f32006c0 Delete type=0 #186
2024/05/05-15:09:14.460606 7fc3f32006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/05/05-15:09:14.460638 7fc3f32006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.047067 7f0422a006c0 Recovering log #106
2024/02/24-15:27:21.058242 7f0422a006c0 Delete type=3 #104
2024/02/24-15:27:21.058369 7f0422a006c0 Delete type=0 #106
2024/02/24-15:54:11.096381 7f0421a006c0 Level-0 table #111: started
2024/02/24-15:54:11.096419 7f0421a006c0 Level-0 table #111: 0 bytes OK
2024/02/24-15:54:11.103263 7f0421a006c0 Delete type=0 #109
2024/02/24-15:54:11.118151 7f0421a006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.118228 7f0421a006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/05/05-15:07:06.773991 7f87a54006c0 Recovering log #179
2024/05/05-15:07:06.783663 7f87a54006c0 Delete type=3 #177
2024/05/05-15:07:06.783711 7f87a54006c0 Delete type=0 #179
2024/05/05-15:07:55.021228 7f879e4006c0 Level-0 table #184: started
2024/05/05-15:07:55.021260 7f879e4006c0 Level-0 table #184: 0 bytes OK
2024/05/05-15:07:55.063500 7f879e4006c0 Delete type=0 #182
2024/05/05-15:07:55.063834 7f879e4006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/05/05-15:07:55.063865 7f879e4006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/mutations/000074.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000022
MANIFEST-000095

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.085660 7f04234006c0 Recovering log #20
2024/02/24-17:02:14.143480 7f04234006c0 Delete type=3 #18
2024/02/24-17:02:14.143544 7f04234006c0 Delete type=0 #20
2024/02/24-17:02:44.549664 7f0421a006c0 Level-0 table #25: started
2024/02/24-17:02:44.549704 7f0421a006c0 Level-0 table #25: 0 bytes OK
2024/02/24-17:02:44.578703 7f0421a006c0 Delete type=0 #23
2024/02/24-17:02:44.578982 7f0421a006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.579068 7f0421a006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/05/05-15:08:28.094278 7fc3f60006c0 Recovering log #93
2024/05/05-15:08:28.125562 7fc3f60006c0 Delete type=3 #91
2024/05/05-15:08:28.125665 7fc3f60006c0 Delete type=0 #93
2024/05/05-15:09:14.434835 7fc3f32006c0 Level-0 table #98: started
2024/05/05-15:09:14.434923 7fc3f32006c0 Level-0 table #98: 0 bytes OK
2024/05/05-15:09:14.441261 7fc3f32006c0 Delete type=0 #96
2024/05/05-15:09:14.460566 7fc3f32006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/05/05-15:09:14.460598 7fc3f32006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,8 @@
2024/02/24-15:27:21.020239 7f0422a006c0 Recovering log #16
2024/02/24-15:27:21.030468 7f0422a006c0 Delete type=3 #14
2024/02/24-15:27:21.030604 7f0422a006c0 Delete type=0 #16
2024/02/24-15:54:11.077049 7f0421a006c0 Level-0 table #21: started
2024/02/24-15:54:11.082085 7f0421a006c0 Level-0 table #21: 56385 bytes OK
2024/02/24-15:54:11.088423 7f0421a006c0 Delete type=0 #19
2024/02/24-15:54:11.088774 7f0421a006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/05/05-15:07:06.748901 7f87a54006c0 Recovering log #89
2024/05/05-15:07:06.758485 7f87a54006c0 Delete type=3 #87
2024/05/05-15:07:06.758539 7f87a54006c0 Delete type=0 #89
2024/05/05-15:07:54.942092 7f879e4006c0 Level-0 table #94: started
2024/05/05-15:07:54.942137 7f879e4006c0 Level-0 table #94: 0 bytes OK
2024/05/05-15:07:54.983919 7f879e4006c0 Delete type=0 #92
2024/05/05-15:07:55.063791 7f879e4006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/05/05-15:07:55.063902 7f879e4006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/profils/000164.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112
MANIFEST-000185

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.526210 7f04234006c0 Recovering log #110
2024/02/24-17:02:14.575335 7f04234006c0 Delete type=3 #108
2024/02/24-17:02:14.575449 7f04234006c0 Delete type=0 #110
2024/02/24-17:02:44.828537 7f0421a006c0 Level-0 table #115: started
2024/02/24-17:02:44.828579 7f0421a006c0 Level-0 table #115: 0 bytes OK
2024/02/24-17:02:44.865276 7f0421a006c0 Delete type=0 #113
2024/02/24-17:02:44.865499 7f0421a006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.865526 7f0421a006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/05/05-15:08:28.298960 7fc3f56006c0 Recovering log #183
2024/05/05-15:08:28.332788 7fc3f56006c0 Delete type=3 #181
2024/05/05-15:08:28.332842 7fc3f56006c0 Delete type=0 #183
2024/05/05-15:09:14.487089 7fc3f32006c0 Level-0 table #188: started
2024/05/05-15:09:14.487111 7fc3f32006c0 Level-0 table #188: 0 bytes OK
2024/05/05-15:09:14.493907 7fc3f32006c0 Delete type=0 #186
2024/05/05-15:09:14.517258 7fc3f32006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/05/05-15:09:14.517311 7fc3f32006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.104005 7f0422a006c0 Recovering log #106
2024/02/24-15:27:21.114826 7f0422a006c0 Delete type=3 #104
2024/02/24-15:27:21.114958 7f0422a006c0 Delete type=0 #106
2024/02/24-15:54:11.118395 7f0421a006c0 Level-0 table #111: started
2024/02/24-15:54:11.118462 7f0421a006c0 Level-0 table #111: 0 bytes OK
2024/02/24-15:54:11.125114 7f0421a006c0 Delete type=0 #109
2024/02/24-15:54:11.146962 7f0421a006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.147039 7f0421a006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/05/05-15:07:06.824442 7f87a54006c0 Recovering log #179
2024/05/05-15:07:06.835293 7f87a54006c0 Delete type=3 #177
2024/05/05-15:07:06.835346 7f87a54006c0 Delete type=0 #179
2024/05/05-15:07:55.137339 7f879e4006c0 Level-0 table #184: started
2024/05/05-15:07:55.137395 7f879e4006c0 Level-0 table #184: 0 bytes OK
2024/05/05-15:07:55.179469 7f879e4006c0 Delete type=0 #182
2024/05/05-15:07:55.216639 7f879e4006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/05/05-15:07:55.216702 7f879e4006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 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-000112
MANIFEST-000185

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.339214 7f04234006c0 Recovering log #110
2024/02/24-17:02:14.435163 7f04234006c0 Delete type=3 #108
2024/02/24-17:02:14.435306 7f04234006c0 Delete type=0 #110
2024/02/24-17:02:44.685074 7f0421a006c0 Level-0 table #115: started
2024/02/24-17:02:44.685104 7f0421a006c0 Level-0 table #115: 0 bytes OK
2024/02/24-17:02:44.722233 7f0421a006c0 Delete type=0 #113
2024/02/24-17:02:44.722419 7f0421a006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.722468 7f0421a006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/05/05-15:08:28.232971 7fc3f60006c0 Recovering log #183
2024/05/05-15:08:28.263060 7fc3f60006c0 Delete type=3 #181
2024/05/05-15:08:28.263194 7fc3f60006c0 Delete type=0 #183
2024/05/05-15:09:14.460749 7fc3f32006c0 Level-0 table #188: started
2024/05/05-15:09:14.460781 7fc3f32006c0 Level-0 table #188: 0 bytes OK
2024/05/05-15:09:14.467216 7fc3f32006c0 Delete type=0 #186
2024/05/05-15:09:14.486829 7fc3f32006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/05/05-15:09:14.486921 7fc3f32006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.075001 7f0422a006c0 Recovering log #106
2024/02/24-15:27:21.085800 7f0422a006c0 Delete type=3 #104
2024/02/24-15:27:21.085899 7f0422a006c0 Delete type=0 #106
2024/02/24-15:54:11.110073 7f0421a006c0 Level-0 table #111: started
2024/02/24-15:54:11.110113 7f0421a006c0 Level-0 table #111: 0 bytes OK
2024/02/24-15:54:11.117605 7f0421a006c0 Delete type=0 #109
2024/02/24-15:54:11.118195 7f0421a006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.118259 7f0421a006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/05/05-15:07:06.798725 7f87a54006c0 Recovering log #179
2024/05/05-15:07:06.809297 7f87a54006c0 Delete type=3 #177
2024/05/05-15:07:06.809440 7f87a54006c0 Delete type=0 #179
2024/05/05-15:07:55.064062 7f879e4006c0 Level-0 table #184: started
2024/05/05-15:07:55.064116 7f879e4006c0 Level-0 table #184: 0 bytes OK
2024/05/05-15:07:55.099799 7f879e4006c0 Delete type=0 #182
2024/05/05-15:07:55.216598 7f879e4006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/05/05-15:07:55.216671 7f879e4006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/scenes/000024.ldb Normal file

Binary file not shown.

1
packs/scenes/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000020

15
packs/scenes/LOG Normal file
View File

@ -0,0 +1,15 @@
2024/05/05-15:08:28.439510 7fc3f56006c0 Recovering log #17
2024/05/05-15:08:28.470649 7fc3f56006c0 Delete type=3 #15
2024/05/05-15:08:28.470739 7fc3f56006c0 Delete type=0 #17
2024/05/05-15:09:14.506515 7fc3f32006c0 Level-0 table #23: started
2024/05/05-15:09:14.510022 7fc3f32006c0 Level-0 table #23: 5110 bytes OK
2024/05/05-15:09:14.517113 7fc3f32006c0 Delete type=0 #21
2024/05/05-15:09:14.517303 7fc3f32006c0 Manual compaction at level-0 from '!scenes!CXx90Qk7nXEd2uTh' @ 72057594037927935 : 1 .. '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 0 : 0; will stop at (end)
2024/05/05-15:09:14.517340 7fc3f32006c0 Manual compaction at level-1 from '!scenes!CXx90Qk7nXEd2uTh' @ 72057594037927935 : 1 .. '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 0 : 0; will stop at '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 58 : 1
2024/05/05-15:09:14.517351 7fc3f32006c0 Compacting 1@1 + 1@2 files
2024/05/05-15:09:14.520727 7fc3f32006c0 Generated table #24@1: 13 keys, 5110 bytes
2024/05/05-15:09:14.520753 7fc3f32006c0 Compacted 1@1 + 1@2 files => 5110 bytes
2024/05/05-15:09:14.526876 7fc3f32006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/05/05-15:09:14.527033 7fc3f32006c0 Delete type=2 #19
2024/05/05-15:09:14.527161 7fc3f32006c0 Delete type=2 #23
2024/05/05-15:09:14.547746 7fc3f32006c0 Manual compaction at level-1 from '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 58 : 1 .. '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 0 : 0; will stop at (end)

15
packs/scenes/LOG.old Normal file
View File

@ -0,0 +1,15 @@
2024/05/05-15:07:06.875333 7f87a54006c0 Recovering log #12
2024/05/05-15:07:06.885642 7f87a54006c0 Delete type=3 #10
2024/05/05-15:07:06.885746 7f87a54006c0 Delete type=0 #12
2024/05/05-15:07:55.295833 7f879e4006c0 Level-0 table #18: started
2024/05/05-15:07:55.313534 7f879e4006c0 Level-0 table #18: 5117 bytes OK
2024/05/05-15:07:55.350588 7f879e4006c0 Delete type=0 #16
2024/05/05-15:07:55.392663 7f879e4006c0 Manual compaction at level-0 from '!scenes!CXx90Qk7nXEd2uTh' @ 72057594037927935 : 1 .. '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 0 : 0; will stop at (end)
2024/05/05-15:07:55.392703 7f879e4006c0 Manual compaction at level-1 from '!scenes!CXx90Qk7nXEd2uTh' @ 72057594037927935 : 1 .. '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 0 : 0; will stop at '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 38 : 0
2024/05/05-15:07:55.392711 7f879e4006c0 Compacting 1@1 + 1@2 files
2024/05/05-15:07:55.410759 7f879e4006c0 Generated table #19@1: 13 keys, 4987 bytes
2024/05/05-15:07:55.410790 7f879e4006c0 Compacted 1@1 + 1@2 files => 4987 bytes
2024/05/05-15:07:55.447598 7f879e4006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/05/05-15:07:55.447741 7f879e4006c0 Delete type=2 #14
2024/05/05-15:07:55.448113 7f879e4006c0 Delete type=2 #18
2024/05/05-15:07:55.485671 7f879e4006c0 Manual compaction at level-1 from '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 38 : 0 .. '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112
MANIFEST-000184

View File

@ -1,7 +1,7 @@
2024/02/24-17:02:14.698353 7f0422a006c0 Recovering log #110
2024/02/24-17:02:14.751354 7f0422a006c0 Delete type=3 #108
2024/02/24-17:02:14.751472 7f0422a006c0 Delete type=0 #110
2024/02/24-17:02:44.865788 7f0421a006c0 Level-0 table #115: started
2024/02/24-17:02:44.865841 7f0421a006c0 Level-0 table #115: 0 bytes OK
2024/02/24-17:02:44.903145 7f0421a006c0 Delete type=0 #113
2024/02/24-17:02:44.991021 7f0421a006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2024/05/05-15:08:28.405376 7fc3f4c006c0 Recovering log #182
2024/05/05-15:08:28.436104 7fc3f4c006c0 Delete type=3 #180
2024/05/05-15:08:28.436163 7fc3f4c006c0 Delete type=0 #182
2024/05/05-15:09:14.500241 7fc3f32006c0 Level-0 table #187: started
2024/05/05-15:09:14.500264 7fc3f32006c0 Level-0 table #187: 0 bytes OK
2024/05/05-15:09:14.506337 7fc3f32006c0 Delete type=0 #185
2024/05/05-15:09:14.517290 7fc3f32006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2024/02/24-15:27:21.147525 7f0428e006c0 Recovering log #106
2024/02/24-15:27:21.158940 7f0428e006c0 Delete type=3 #104
2024/02/24-15:27:21.159095 7f0428e006c0 Delete type=0 #106
2024/02/24-15:54:11.147250 7f0421a006c0 Level-0 table #111: started
2024/02/24-15:54:11.147304 7f0421a006c0 Level-0 table #111: 0 bytes OK
2024/02/24-15:54:11.154258 7f0421a006c0 Delete type=0 #109
2024/02/24-15:54:11.169343 7f0421a006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2024/05/05-15:07:06.862429 7f879fe006c0 Recovering log #178
2024/05/05-15:07:06.873538 7f879fe006c0 Delete type=3 #176
2024/05/05-15:07:06.873597 7f879fe006c0 Delete type=0 #178
2024/05/05-15:07:55.216832 7f879e4006c0 Level-0 table #183: started
2024/05/05-15:07:55.216941 7f879e4006c0 Level-0 table #183: 0 bytes OK
2024/05/05-15:07:55.253366 7f879e4006c0 Delete type=0 #181
2024/05/05-15:07:55.392622 7f879e4006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

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