Compare commits

..

17 Commits

132 changed files with 953 additions and 562 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -12,7 +12,7 @@ export class HawkmoonActorSheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"], classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
template: "systems/fvtt-hawkmoon-cyd/templates/actor-sheet.html", template: "systems/fvtt-hawkmoon-cyd/templates/actor-sheet.html",
width: 640, width: 640,
@@ -25,7 +25,7 @@ export class HawkmoonActorSheet extends ActorSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
async getData() { async getData() {
const objectData = duplicate(this.object) const objectData = foundry.utils.duplicate(this.object)
let formData = { let formData = {
title: this.title, title: this.title,
@@ -39,17 +39,17 @@ export class HawkmoonActorSheet extends ActorSheet {
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)), effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
limited: this.object.limited, limited: this.object.limited,
skills: this.actor.getSkills(), skills: this.actor.getSkills(),
armes: duplicate(this.actor.getWeapons()), armes: foundry.utils.duplicate(this.actor.getWeapons()),
monnaies: duplicate(this.actor.getMonnaies()), monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
protections: duplicate(this.actor.getArmors()), protections: foundry.utils.duplicate(this.actor.getArmors()),
historiques: duplicate(this.actor.getHistoriques() || []), historiques: foundry.utils.duplicate(this.actor.getHistoriques() || []),
talents: duplicate(this.actor.getTalents() || []), talents: foundry.utils.duplicate(this.actor.getTalents() || []),
mutations: duplicate(this.actor.getMutations() || []), mutations: foundry.utils.duplicate(this.actor.getMutations() || []),
talentsCell: this.getCelluleTalents(), talentsCell: this.getCelluleTalents(),
profils: duplicate(this.actor.getProfils() || []), profils: foundry.utils.duplicate(this.actor.getProfils() || []),
combat: this.actor.getCombatValues(), combat: this.actor.getCombatValues(),
equipements: duplicate(this.actor.getEquipments()), equipements: foundry.utils.duplicate(this.actor.getEquipments()),
artefacts: duplicate(this.actor.getArtefacts()), artefacts: foundry.utils.duplicate(this.actor.getArtefacts()),
richesse: this.actor.computeRichesse(), richesse: this.actor.computeRichesse(),
coupDevastateur: this.actor.items.find(it => it.type =="talent" && it.name.toLowerCase() == "coup devastateur" && !it.system.used), coupDevastateur: this.actor.items.find(it => it.type =="talent" && it.name.toLowerCase() == "coup devastateur" && !it.system.used),
valeurEquipement: this.actor.computeValeurEquipement(), valeurEquipement: this.actor.computeValeurEquipement(),
@@ -61,7 +61,8 @@ export class HawkmoonActorSheet extends ActorSheet {
options: this.options, options: this.options,
owner: this.document.isOwner, owner: this.document.isOwner,
editScore: this.options.editScore, editScore: this.options.editScore,
isGM: game.user.isGM isGM: game.user.isGM,
config: game.system.hawkmoon.config
} }
this.formData = formData; this.formData = formData;
@@ -147,8 +148,8 @@ export class HawkmoonActorSheet extends ActorSheet {
this.actor.rollArmeOffensif(armeId) this.actor.rollArmeOffensif(armeId)
}) })
html.find('.roll-assomer').click((event) => { html.find('.roll-assommer').click((event) => {
this.actor.rollAssomer() this.actor.rollAssommer()
}) })
html.find('.roll-coup-bas').click((event) => { html.find('.roll-coup-bas').click((event) => {
this.actor.rollCoupBas() this.actor.rollCoupBas()

View File

@@ -67,22 +67,26 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareArme(arme) { prepareArme(arme) {
arme = duplicate(arme) if (this.type == "cellule") {
return arme
}
arme = foundry.utils.duplicate(arme)
let combat = this.getCombatValues() let combat = this.getCombatValues()
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") { if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
let bonusDefense = this.getBonusDefenseFromTalents() 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.attrKey = "pui"
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + (this.system.combat.monte ? 3 : 0 ) 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 ) 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) console.log("Arme", arme.system.totalDefensif, combat, arme.system.competence.system.niveau, arme.system.seuildefense, bonusDefense)
arme.system.isdefense = true arme.system.isdefense = true
arme.system.isMelee = true arme.system.isMelee = true
arme.system.isDistance = false arme.system.isDistance = false
} }
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") { 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.attrKey = "adr"
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
arme.system.totalDegats = arme.system.degats arme.system.totalDegats = arme.system.degats
@@ -146,7 +150,7 @@ export class HawkmoonActor extends Actor {
getSkills() { getSkills() {
let comp = [] let comp = []
for (let item of this.items) { for (let item of this.items) {
item = duplicate(item) item = foundry.utils.duplicate(item)
if (item.type == "competence") { if (item.type == "competence") {
item.system.attribut1total = item.system.niveau + (this.system.attributs[item.system.attribut1]?.value || 0) 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) item.system.attribut2total = item.system.niveau + (this.system.attributs[item.system.attribut2]?.value || 0)
@@ -168,7 +172,7 @@ export class HawkmoonActor extends Actor {
/* ----------------------- --------------------- */ /* ----------------------- --------------------- */
addMember(actorId) { addMember(actorId) {
let members = duplicate(this.system.members) let members = foundry.utils.duplicate(this.system.members)
members.push({ id: actorId }) members.push({ id: actorId })
this.update({ 'system.members': members }) this.update({ 'system.members': members })
} }
@@ -202,6 +206,20 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getCombatValues() { getCombatValues() {
if (this.type == "cellule"){
return {
initBase: 0,
initTotal: 0,
bonusDegats: 0,
bonusDegatsTotal: 0,
vitesseBase: 0,
vitesseTotal: 0,
defenseBase: 0,
protection: 0,
defenseTotal: 0
}
}
let combat = { let combat = {
initBase: this.system.attributs.adr.value, initBase: this.system.attributs.adr.value,
initTotal: this.system.attributs.adr.value + this.system.combat.initbonus, initTotal: this.system.attributs.adr.value + this.system.combat.initbonus,
@@ -235,21 +253,28 @@ export class HawkmoonActor extends Actor {
this.update({ 'system.sante.vigueur': vigueur }) this.update({ 'system.sante.vigueur': vigueur })
} }
} }
super.prepareDerivedData() super.prepareDerivedData()
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
_preUpdate(changed, options, user) { _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); super._preUpdate(changed, options, user);
} }
/* -------------------------------------------- */
_onUpdate(data, options, user) {
super._onUpdate(data, options, user);
}
/* -------------------------------------------- */ /* -------------------------------------------- */
getItemById(id) { getItemById(id) {
let item = this.items.find(item => item.id == id); let item = this.items.find(item => item.id == id);
if (item) { if (item) {
item = duplicate(item) item = foundry.utils.duplicate(item)
} }
return item; return item;
} }
@@ -282,7 +307,7 @@ export class HawkmoonActor extends Actor {
checkAttribut(attribut, minLevel) { checkAttribut(attribut, minLevel) {
let attr = this.system.attributs.find(at => at.labelnorm == attribut.toLowerCase()) let attr = this.system.attributs.find(at => at.labelnorm == attribut.toLowerCase())
if (attr && attr.value >= minLevel) { if (attr && attr.value >= minLevel) {
return { isValid: true, attr: duplicate(attr) } return { isValid: true, attr: foundry.utils.duplicate(attr) }
} }
return { isValid: false } return { isValid: false }
} }
@@ -290,11 +315,11 @@ export class HawkmoonActor extends Actor {
checkAttributOrCompetenceLevel(compName, minLevel) { checkAttributOrCompetenceLevel(compName, minLevel) {
let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase() && i.system.niveau >= minLevel) let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase() && i.system.niveau >= minLevel)
if (comp) { if (comp) {
return { isValid: true, item: duplicate(comp) } return { isValid: true, item: foundry.utils.duplicate(comp) }
} else { } else {
for (let attrKey in this.system.attributs) { for (let attrKey in this.system.attributs) {
if (this.system.attributs[attrKey].label.toLowerCase() == compName.toLowerCase() && this.system.attributs[attrKey].value >= minLevel) { 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 +329,7 @@ export class HawkmoonActor extends Actor {
addCompetenceBonus(compName, bonus, baCost) { addCompetenceBonus(compName, bonus, baCost) {
let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase()) let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase())
if (comp) { if (comp) {
comp = duplicate(comp) comp = foundry.utils.duplicate(comp)
comp.system.bonus = bonus comp.system.bonus = bonus
comp.system.baCost = baCost comp.system.baCost = baCost
return { isValid: true, item: comp } return { isValid: true, item: comp }
@@ -388,22 +413,28 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
changeEtatCombativite(value) { changeEtatCombativite(value) {
if ( value === "vaincu") { if (value === "vaincu") {
value = 200 value = 200
} }
let sante = duplicate(this.system.sante) let sante = foundry.utils.duplicate(this.system.sante)
sante.etat += Number(value) sante.etat += Number(value)
sante.etat = Math.max(sante.etat, 0) 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 }) this.update({ 'system.sante': sante })
if (sante.etat == this.system.sante.nbcombativite) { if (sante.etat == this.system.sante.nbcombativite) {
ChatMessage.create({ content: `<strong>${this.name} est vaincu !</strong>` }) 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 // 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 || 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 && 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>` }) 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>` }) 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 { } else {
ChatMessage.create({ content: `<strong>${this.name} subit 2 adversités rouge !</strong>` }) ChatMessage.create({ content: `<strong>${this.name} subit 2 adversités rouge !</strong>` })
@@ -425,13 +456,13 @@ export class HawkmoonActor extends Actor {
getSubActors() { getSubActors() {
let subActors = []; let subActors = [];
for (let id of this.system.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; return subActors;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async addSubActor(subActorId) { async addSubActor(subActorId) {
let subActors = duplicate(this.system.subactors); let subActors = foundry.utils.duplicate(this.system.subactors);
subActors.push(subActorId); subActors.push(subActorId);
await this.update({ 'system.subactors': subActors }); await this.update({ 'system.subactors': subActors });
} }
@@ -453,9 +484,10 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async incDecAdversite(adv, incDec = 0) { 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] += Number(incDec)
adversite[adv] = Math.max(adversite[adv], 0) adversite[adv] = Math.max(adversite[adv], 0)
adversite[adv] = Math.min(adversite[adv], 20)
this.update({ 'system.adversite': adversite }) this.update({ 'system.adversite': adversite })
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -500,7 +532,7 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async setPredilectionUsed(compId, predIdx) { async setPredilectionUsed(compId, predIdx) {
let comp = this.items.get(compId) let comp = this.items.get(compId)
let pred = duplicate(comp.system.predilections) let pred = foundry.utils.duplicate(comp.system.predilections)
pred[predIdx].used = true pred[predIdx].used = true
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }]) await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
} }
@@ -522,7 +554,7 @@ export class HawkmoonActor extends Actor {
} }
if (arme.system.totalDefensif > maxDef) { if (arme.system.totalDefensif > maxDef) {
maxDef = arme.system.totalDefensif maxDef = arme.system.totalDefensif
bestArme = duplicate(arme) bestArme = foundry.utils.duplicate(arme)
} }
} }
return bestArme return bestArme
@@ -537,7 +569,7 @@ export class HawkmoonActor extends Actor {
for (let auto of talent.system.automations) { for (let auto of talent.system.automations) {
if (auto.eventtype === "prepare-roll") { if (auto.eventtype === "prepare-roll") {
if (auto.competence.toLowerCase() == competence.name.toLowerCase()) { if (auto.competence.toLowerCase() == competence.name.toLowerCase()) {
talent = duplicate(talent) talent = foundry.utils.duplicate(talent)
talent.system.bonus = auto.bonus talent.system.bonus = auto.bonus
talent.system.baCost = auto.baCost talent.system.baCost = auto.baCost
talents.push(talent) talents.push(talent)
@@ -569,26 +601,33 @@ export class HawkmoonActor extends Actor {
rollData.nbAdversites = this.getTotalAdversite() rollData.nbAdversites = this.getTotalAdversite()
rollData.talents = [] rollData.talents = []
rollData.attrKey2 = "none" 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.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.hasFeinte = this.system.bonneaventure.actuelle > 0 && this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "feinte")
rollData.isMonte = this.system.combat.monte rollData.isMonte = this.system.combat.monte
rollData.config = game.system.hawkmoon.config
if (attrKey) { if (attrKey) {
rollData.attrKey = attrKey rollData.attrKey = attrKey
if (attrKey != "tochoose") { if (attrKey != "tochoose") {
rollData.actionImg = "systems/fvtt-hawkmoon-cyd/assets/icons/" + this.system.attributs[attrKey].labelnorm + ".webp" 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) { if (compId) {
rollData.competence = duplicate(this.items.get(compId) || {}) rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
rollData.maitrises = rollData.competence.system.predilections.filter(p => p.maitrise) 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.actionImg = rollData.competence?.img
rollData.talents = this.searchRelevantTalents(rollData.competence) rollData.talents = this.searchRelevantTalents(rollData.competence)
} }
if (compName) { 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 rollData.actionImg = rollData.competence?.img
} }
return rollData return rollData
@@ -626,7 +665,7 @@ export class HawkmoonActor extends Actor {
rollDialog.render(true) rollDialog.render(true)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollAssomer() { async rollAssommer() {
let rollData = this.getCommonRollData("pui", undefined, "Filouterie") let rollData = this.getCommonRollData("pui", undefined, "Filouterie")
rollData.assomer = true rollData.assomer = true
rollData.conditionsCommunes = true rollData.conditionsCommunes = true
@@ -672,7 +711,7 @@ export class HawkmoonActor extends Actor {
let rollDialog = await HawkmoonRollDialog.create(this, rollData) let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true) rollDialog.render(true)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollArmeDegats(armeId, targetVigueur = undefined, rollDataInput = undefined) { async rollArmeDegats(armeId, targetVigueur = undefined, rollDataInput = undefined) {
let arme = this.items.get(armeId) let arme = this.items.get(armeId)
@@ -687,7 +726,7 @@ export class HawkmoonActor extends Actor {
if (rollDataInput?.applyCoupDevastateur) { if (rollDataInput?.applyCoupDevastateur) {
bonus2 = Math.floor(this.system.attributs.pui.value / 2) bonus2 = Math.floor(this.system.attributs.pui.value / 2)
let talent = this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "coup dévastateur") 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?.isHeroique) {
@@ -697,7 +736,7 @@ export class HawkmoonActor extends Actor {
if (rollDataInput?.chargeCavalerie) { if (rollDataInput?.chargeCavalerie) {
bonus = 6 bonus = 6
} }
roll = new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll({ async: false }) roll = await new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll()
} else { } else {
if (rollDataInput?.attaqueCharge) { if (rollDataInput?.attaqueCharge) {
bonus = 3 bonus = 3
@@ -705,13 +744,13 @@ export class HawkmoonActor extends Actor {
if (rollDataInput?.chargeCavalerie) { if (rollDataInput?.chargeCavalerie) {
bonus = 4 bonus = 4
} }
roll = new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll({ async: false }) roll = await new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll()
} }
await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode")); await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
let nbEtatPerdus = 0 let nbEtatPerdus = 0
if (targetVigueur) { if (targetVigueur) {
nbEtatPerdus = Math.floor(roll.total / targetVigueur) nbEtatPerdus = Math.floor(roll.total / targetVigueur)
} }
//console.log(roll) //console.log(roll)
let rollData = { let rollData = {
arme: arme, arme: arme,

View File

@@ -14,10 +14,10 @@ export class HawkmoonAutomation {
this.__objectTypes = { } this.__objectTypes = { }
Object.entries(game.data.model.Actor).forEach(kv => { 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 => { 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

@@ -7,7 +7,7 @@ import { HawkmoonUtility } from "./hawkmoon-utility.js";
import { HawkmoonAutomation } from "./hawkmoon-automation.js"; import { HawkmoonAutomation } from "./hawkmoon-automation.js";
/* -------------------------------------------- */ /* -------------------------------------------- */
const __ALLOWED_ITEM_CELLULE = { "talent": 1, "ressource": 1, "contact": 1} const __ALLOWED_ITEM_CELLULE = { "talent": 1, "ressource": 1, "contact": 1, "equipement": 1, "protection": 1, "artefact": 1, "arme": 1, "monnaie": 1 }
/* -------------------------------------------- */ /* -------------------------------------------- */
export class HawkmoonCelluleSheet extends ActorSheet { export class HawkmoonCelluleSheet extends ActorSheet {
@@ -15,7 +15,7 @@ export class HawkmoonCelluleSheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"], classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
template: "systems/fvtt-hawkmoon-cyd/templates/cellule-sheet.html", template: "systems/fvtt-hawkmoon-cyd/templates/cellule-sheet.html",
width: 640, width: 640,
@@ -28,7 +28,7 @@ export class HawkmoonCelluleSheet extends ActorSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
async getData() { async getData() {
const objectData = duplicate(this.object) const objectData = foundry.utils.duplicate(this.object)
let formData = { let formData = {
title: this.title, title: this.title,
@@ -41,15 +41,23 @@ export class HawkmoonCelluleSheet extends ActorSheet {
system: objectData.system, system: objectData.system,
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)), effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
limited: this.object.limited, limited: this.object.limited,
talents: duplicate(this.actor.getTalents() || {}), talents: foundry.utils.duplicate(this.actor.getTalents() || {}),
ressources: duplicate(this.actor.getRessources()), ressources: foundry.utils.duplicate(this.actor.getRessources()),
contacts: duplicate(this.actor.getContacts()), contacts: foundry.utils.duplicate(this.actor.getContacts()),
members: this.getMembers(), members: this.getMembers(),
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
artefacts: foundry.utils.duplicate(this.actor.getArtefacts()),
armes: foundry.utils.duplicate(this.actor.getWeapons()),
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
protections: foundry.utils.duplicate(this.actor.getArmors()),
richesse: this.actor.computeRichesse(),
valeurEquipement: this.actor.computeValeurEquipement(),
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }), description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
options: this.options, options: this.options,
owner: this.document.isOwner, owner: this.document.isOwner,
editScore: this.options.editScore, editScore: this.options.editScore,
isGM: game.user.isGM isGM: game.user.isGM,
config: game.system.hawkmoon.config
} }
this.formData = formData; this.formData = formData;
@@ -109,15 +117,15 @@ export class HawkmoonCelluleSheet extends ActorSheet {
let value = ev.currentTarget.value let value = ev.currentTarget.value
this.actor.editItemField(itemId, itemType, itemField, dataType, value) this.actor.editItemField(itemId, itemType, itemField, dataType, value)
}) })
html.find('.quantity-modify').click(event => {
html.find('.quantity-minus').click(event => { const li = $(event.currentTarget).parents(".item")
const li = $(event.currentTarget).parents(".item"); const value = Number($(event.currentTarget).data("quantite-value"))
this.actor.incDecQuantity(li.data("item-id"), -1); this.actor.incDecQuantity( li.data("item-id"), value );
}); })
html.find('.quantity-plus').click(event => { html.find('.item-add').click((event) => {
const li = $(event.currentTarget).parents(".item"); const itemType = $(event.currentTarget).data("type")
this.actor.incDecQuantity(li.data("item-id"), +1); this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
}); })
html.find('.lock-unlock-sheet').click((event) => { html.find('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore; this.options.editScore = !this.options.editScore;
@@ -148,7 +156,7 @@ export class HawkmoonCelluleSheet extends ActorSheet {
super._onDropItem(event, dragData) super._onDropItem(event, dragData)
return return
} }
ui.notifications("Ce type d'item n'est pas autorisé sur une Cellule.") ui.notification.info("Ce type d'item n'est pas autorisé sur une Cellule.")
} }

View File

@@ -7,8 +7,8 @@ export class HawkmoonCombat extends Combat {
async rollInitiative(ids, formula = undefined, messageOptions = {} ) { async rollInitiative(ids, formula = undefined, messageOptions = {} ) {
ids = typeof ids === "string" ? [ids] : ids; ids = typeof ids === "string" ? [ids] : ids;
for (let cId of ids) { for (let cId of ids) {
const c = this.combatants.get(ids[cId]); const c = this.combatants.get(cId);
//console.log("Init for combattant", c ) console.log("Init for combattant", c, ids)
let id = c._id || c.id let id = c._id || c.id
let initValue = c.actor ? c.actor.getInitiativeScore() : 0 let initValue = c.actor ? c.actor.getInitiativeScore() : 0
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initValue } ]); await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initValue } ]);

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

@@ -0,0 +1,143 @@
export const HAWKMOON_CONFIG = {
optionsDifficulte: [
{ key: "0", label: "Aucune/Inconnue" },
{ key: "5", label: "Facile (5)" },
{ key: "6", label: "(6)" },
{ key: "7", label: "(7)" },
{ key: "8", label: "(8)" },
{ key: "9", label: "(9)" },
{ key: "10", label: "Moyenne (10)" },
{ key: "11", label: "(11)" },
{ key: "12", label: "(12)" },
{ key: "13", label: "(13)" },
{ key: "14", label: "(14)" },
{ key: "15", label: "Ardue (15)" },
{ key: "16", label: "(16)" },
{ key: "17", label: "(17)" },
{ key: "18", label: "(18)" },
{ key: "19", label: "(19)" },
{ key: "20", label: "Hasardeuse (20)" },
{ key: "21", label: "(21)" },
{ key: "22", label: "(22)" },
{ key: "23", label: "(23)" },
{ key: "24", label: "(24)" },
{ key: "25", label: "Insensée (25)" },
{ key: "26", label: "(26)" },
{ key: "27", label: "(27)" },
{ key: "28", label: "(28)" },
{ key: "29", label: "(29)" },
{ 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: "-10", label: "-10" },
{ key: "-9", label: "-9" },
{ key: "-8", label: "-8" },
{ key: "-7", label: "-7" },
{ key: "-6", label: "-6" },
{ key: "-5", label: "-5" },
{ 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" },
{ key: "5", label: "+5" },
{ key: "6", label: "+6" },
{ key: "7", label: "+7" },
{ key: "8", label: "+8" },
{ key: "9", label: "+9" },
{ key: "10", label: "+10" }
],
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 */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"], classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
template: "systems/fvtt-hawkmoon-cyd/templates/creature-sheet.html", template: "systems/fvtt-hawkmoon-cyd/templates/creature-sheet.html",
width: 640, width: 640,

View File

@@ -9,7 +9,7 @@ export class HawkmoonItemSheet extends ItemSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-hawkmoon-cyd", "sheet", "item"], classes: ["fvtt-hawkmoon-cyd", "sheet", "item"],
template: "systems/fvtt-hawkmoon-cyd/templates/item-sheet.html", template: "systems/fvtt-hawkmoon-cyd/templates/item-sheet.html",
dragDrop: [{ dragSelector: null, dropSelector: null }], dragDrop: [{ dragSelector: null, dropSelector: null }],
@@ -48,7 +48,7 @@ export class HawkmoonItemSheet extends ItemSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
async getData() { async getData() {
const objectData = duplicate(this.object) const objectData = foundry.utils.duplicate(this.object)
let formData = { let formData = {
title: this.title, title: this.title,
id: this.id, id: this.id,
@@ -64,7 +64,8 @@ export class HawkmoonItemSheet extends ItemSheet {
owner: this.document.isOwner, owner: this.document.isOwner,
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}), description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
mr: (this.object.type == 'specialisation'), mr: (this.object.type == 'specialisation'),
isGM: game.user.isGM isGM: game.user.isGM,
config: game.system.hawkmoon.config
} }
if ( objectData.type == "don") { if ( objectData.type == "don") {
@@ -89,7 +90,7 @@ export class HawkmoonItemSheet extends ItemSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
postItem() { postItem() {
let chatData = duplicate(HawkmoonUtility.data(this.item)); let chatData = foundry.utils.duplicate(HawkmoonUtility.data(this.item));
if (this.actor) { if (this.actor) {
chatData.actor = { id: this.actor.id }; chatData.actor = { id: this.actor.id };
} }
@@ -132,7 +133,7 @@ export class HawkmoonItemSheet extends ItemSheet {
html.find('.edit-predilection').change(ev => { html.find('.edit-predilection').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") 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].name = ev.currentTarget.value
pred[index].id = pred[index].id || randomID(16) pred[index].id = pred[index].id || randomID(16)
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
@@ -140,7 +141,7 @@ export class HawkmoonItemSheet extends ItemSheet {
html.find('.edit-predilection-description').change(ev => { html.find('.edit-predilection-description').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") 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].description = ev.currentTarget.value
pred[index].id = pred[index].id || randomID(16) pred[index].id = pred[index].id || randomID(16)
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
@@ -148,7 +149,7 @@ export class HawkmoonItemSheet extends ItemSheet {
html.find('.predilection-acquise').change(ev => { html.find('.predilection-acquise').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") 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].acquise = ev.currentTarget.checked
pred[index].id = pred[index].id || randomID(16) pred[index].id = pred[index].id || randomID(16)
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
@@ -156,7 +157,7 @@ export class HawkmoonItemSheet extends ItemSheet {
html.find('.predilection-maitrise').change(ev => { html.find('.predilection-maitrise').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") 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].maitrise = ev.currentTarget.checked
pred[index].id = pred[index].id || randomID(16) pred[index].id = pred[index].id || randomID(16)
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
@@ -164,41 +165,41 @@ export class HawkmoonItemSheet extends ItemSheet {
html.find('.predilection-used').change(ev => { html.find('.predilection-used').change(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") 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].used = ev.currentTarget.checked
pred[index].id = pred[index].id || randomID(16) pred[index].id = pred[index].id || randomID(16)
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
html.find('#add-predilection').click(ev => { 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 }) pred.push( { name: "Nouvelle prédilection", id: randomID(16), used: false })
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
html.find('.delete-prediction').click(ev => { html.find('.delete-prediction').click(ev => {
const li = $(ev.currentTarget).parents(".prediction-item") const li = $(ev.currentTarget).parents(".prediction-item")
let index = li.data("prediction-index") 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) pred.splice(index,1)
this.object.update( { 'system.predilections': pred }) this.object.update( { 'system.predilections': pred })
}) })
html.find('#add-automation').click(ev => { 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) }) 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 }) this.object.update( { 'system.automations': autom })
}) })
html.find('.delete-automation').click(ev => { html.find('.delete-automation').click(ev => {
const li = $(ev.currentTarget).parents(".automation-item") const li = $(ev.currentTarget).parents(".automation-item")
let index = li.data("automation-index") 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) autom.splice(index,1)
this.object.update( { 'system.automations': autom }) this.object.update( { 'system.automations': autom })
}) })
html.find('.automation-edit-field').change(ev => { html.find('.automation-edit-field').change(ev => {
let index = $(ev.currentTarget).data("automation-index") let index = $(ev.currentTarget).data("automation-index")
let field = $(ev.currentTarget).data("automation-field") 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][field] = ev.currentTarget.value
auto[index].id = auto[index].id || randomID(16) auto[index].id = auto[index].id || randomID(16)
this.object.update( { 'system.automations': auto }) 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 { HawkmoonItem } from "./hawkmoon-item.js";
import { HawkmoonAutomation } from "./hawkmoon-automation.js"; import { HawkmoonAutomation } from "./hawkmoon-automation.js";
import { HawkmoonTokenHud } from "./hawkmoon-hud.js"; import { HawkmoonTokenHud } from "./hawkmoon-hud.js";
import { HAWKMOON_CONFIG } from "./hawkmoon-config.js";
/* -------------------------------------------- */ /* -------------------------------------------- */
/* Foundry VTT Initialization */ /* Foundry VTT Initialization */
@@ -50,7 +51,8 @@ Hooks.once("init", async function () {
CONFIG.Item.documentClass = HawkmoonItem CONFIG.Item.documentClass = HawkmoonItem
game.system.hawkmoon = { game.system.hawkmoon = {
HawkmoonUtility, 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-cyd.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 */ /* Foundry VTT Initialization */
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -104,7 +119,8 @@ Hooks.once("ready", function () {
}).catch(err=> }).catch(err=>
console.log("No stats available, giving up.") console.log("No stats available, giving up.")
) )
importDefaultScene()
welcomeMessage() welcomeMessage()
}); });

View File

@@ -60,7 +60,8 @@ export class HawkmoonRollDialog extends Dialog {
html.find('#modificateur').change(async (event) => { html.find('#modificateur').change(async (event) => {
this.rollData.modificateur = Number(event.currentTarget.value) 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) this.rollData.difficulte = Number(event.currentTarget.value)
}) })
html.find('#attrKey').change(async (event) => { html.find('#attrKey').change(async (event) => {

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 logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp"
let logoImg = document.querySelector('#pause').children[0] let logoImg = document.querySelector('#pause').children[0]
logoImg.setAttribute('style', `content: url(${logoPause})`) 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;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -142,7 +162,7 @@ export class HawkmoonUtility {
let rollData = message.getFlag("world", "hawkmoon-roll") let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = HawkmoonUtility.getActorFromRollData(rollData) let actor = HawkmoonUtility.getActorFromRollData(rollData)
await actor.setPredilectionUsed(rollData.competence._id, predIdx) 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) HawkmoonUtility.rollHawkmoon(rollData)
}) })
@@ -172,10 +192,7 @@ export class HawkmoonUtility {
'systems/fvtt-hawkmoon-cyd/templates/partial-item-header.html', '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-description.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-item-nav.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-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/partial-automation.html',
'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html', 'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html',
] ]
@@ -256,7 +273,7 @@ export class HawkmoonUtility {
let id = rollData.rollId; let id = rollData.rollId;
let oldRollData = this.rollDataStore[id] || {}; let oldRollData = this.rollDataStore[id] || {};
let newRollData = mergeObject(oldRollData, rollData); let newRollData = foundry.utils.mergeObject(oldRollData, rollData);
this.rollDataStore[id] = newRollData; this.rollDataStore[id] = newRollData;
} }
@@ -298,10 +315,10 @@ export class HawkmoonUtility {
switch (rollMode) { switch (rollMode) {
case "blindroll": //GM only case "blindroll": //GM only
blind = true; blind = true;
case "gmroll": //GM + rolling player case "gmroll": // GM + rolling player
whisper = this.getUsers(user => user.isGM); whisper = this.getUsers(user => user.isGM);
break; break;
case "roll": //everybody case "roll": // everybody
whisper = this.getUsers(user => user.active); whisper = this.getUsers(user => user.active);
break; break;
case "selfroll": case "selfroll":
@@ -364,10 +381,10 @@ export class HawkmoonUtility {
} }
if (!rollData.attr) { if (!rollData.attr) {
rollData.actionImg = "systems/fvtt-hawkmoon-cyd/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp" 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") { 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") { if (rollData.maitriseId != "none") {
@@ -379,7 +396,7 @@ export class HawkmoonUtility {
//console.log("BEFORE COMP", rollData) //console.log("BEFORE COMP", rollData)
if (rollData.competence) { 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 let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}` rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
@@ -415,10 +432,10 @@ export class HawkmoonUtility {
rollData.diceFormula += `+3` rollData.diceFormula += `+3`
} }
if (rollData.hasAmbidextre) { if (rollData.hasAmbidextre) {
if ( rollData.attaqueAmbidextre1) { if ( rollData.ambidextre1) {
rollData.diceFormula += `-3` rollData.diceFormula += `-3`
} else if ( rollData.attaqueAmbidextre2) { } else if ( rollData.ambidextre2) {
rollData.diceFormula += `-5` rollData.diceFormula += `-6`
} }
} }
if (rollData.defenseurAuSol) { if (rollData.defenseurAuSol) {
@@ -463,9 +480,9 @@ export class HawkmoonUtility {
// Gestion de la feinte éventuelle // Gestion de la feinte éventuelle
rollData.nbCombativitePerdu = 1 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")) await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = duplicate(myRoll) rollData.roll = foundry.utils.duplicate(myRoll)
console.log(">>>> ", myRoll) console.log(">>>> ", myRoll)
rollData.finalResult = myRoll.total rollData.finalResult = myRoll.total
@@ -497,23 +514,23 @@ export class HawkmoonUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static getCombativiteList(nbActivite) { static getCombativiteList(nbActivite) {
let list = [ { value: 0, label: "Combatif"}] let list = [ { value: String(0), label: "Combatif"}]
for (let i = 1; i < nbActivite-2; i++) { for (let i = 1; i < nbActivite-2; i++) {
list.push({ value: i, label:"Eprouvé " + i} ) list.push({ value: String(i), label:"Eprouvé " + i} )
} }
list[nbActivite-2] = { value: nbActivite-2, label:"Affaibli"} list[nbActivite-2] = { value: String(nbActivite-2), label:"Affaibli"}
list[nbActivite-1] = { value: nbActivite-1, label:"Très Affaibli"} list[nbActivite-1] = { value: String(nbActivite-1), label:"Très Affaibli"}
list[nbActivite] = { value: nbActivite, label:"Vaincu"} list[nbActivite] = { value: String(nbActivite), label:"Vaincu"}
return list return list
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static async bonusRollHawkmoon(rollData) { static async bonusRollHawkmoon(rollData) {
rollData.bonusFormula = rollData.addedBonus 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")); await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
rollData.bonusRoll = duplicate(bonusRoll) rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
rollData.finalResult += rollData.bonusRoll.total rollData.finalResult += rollData.bonusRoll.total
@@ -547,7 +564,7 @@ export class HawkmoonUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static blindMessageToGM(chatOptions) { static blindMessageToGM(chatOptions) {
let chatGM = duplicate(chatOptions); let chatGM = foundry.utils.duplicate(chatOptions);
chatGM.whisper = this.getUsers(user => user.isGM); chatGM.whisper = this.getUsers(user => user.isGM);
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content; chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
console.log("blindMessageToGM", chatGM); console.log("blindMessageToGM", chatGM);
@@ -611,7 +628,7 @@ export class HawkmoonUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static getBasicRollData() { static getBasicRollData() {
let rollData = { let rollData = {
rollId: randomID(16), rollId: foundry.utils.randomID(16),
rollMode: game.settings.get("core", "rollMode"), rollMode: game.settings.get("core", "rollMode"),
modificateursOptions: this.getModificateurOptions(), modificateursOptions: this.getModificateurOptions(),
pointAmeOptions: this.getPointAmeOptions(), pointAmeOptions: this.getPointAmeOptions(),

View File

@@ -1 +1 @@
MANIFEST-000152 MANIFEST-000264

View File

@@ -1,8 +1,8 @@
2024/04/24-19:19:44.588303 7fcc654006c0 Recovering log #150 2025/03/28-14:48:51.414284 7f9cf5ffb6c0 Recovering log #261
2024/04/24-19:19:45.046737 7fcc654006c0 Delete type=3 #148 2025/03/28-14:48:51.424277 7f9cf5ffb6c0 Delete type=3 #259
2024/04/24-19:19:45.047257 7fcc654006c0 Delete type=0 #150 2025/03/28-14:48:51.424333 7f9cf5ffb6c0 Delete type=0 #261
2024/04/24-20:38:33.674583 7fcc5e4006c0 Level-0 table #155: started 2025/03/28-14:56:17.706645 7f9cf4ff96c0 Level-0 table #267: started
2024/04/24-20:38:33.674627 7fcc5e4006c0 Level-0 table #155: 0 bytes OK 2025/03/28-14:56:17.706686 7f9cf4ff96c0 Level-0 table #267: 0 bytes OK
2024/04/24-20:38:33.681197 7fcc5e4006c0 Delete type=0 #153 2025/03/28-14:56:17.715753 7f9cf4ff96c0 Delete type=0 #265
2024/04/24-20:38:33.681325 7fcc5e4006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.747853 7f9cf4ff96c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.681347 7fcc5e4006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.747898 7f9cf4ff96c0 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,15 @@
2024/04/07-18:44:43.940864 7f38a3e006c0 Recovering log #146 2025/03/02-08:57:29.566048 7fcc0cdf96c0 Recovering log #257
2024/04/07-18:44:43.951368 7f38a3e006c0 Delete type=3 #144 2025/03/02-08:57:29.577154 7fcc0cdf96c0 Delete type=3 #255
2024/04/07-18:44:43.951425 7f38a3e006c0 Delete type=0 #146 2025/03/02-08:57:29.577248 7fcc0cdf96c0 Delete type=0 #257
2024/04/07-18:53:15.757658 7f38a10006c0 Level-0 table #151: started 2025/03/02-08:58:03.539437 7fcc06ffd6c0 Level-0 table #262: started
2024/04/07-18:53:15.757696 7f38a10006c0 Level-0 table #151: 0 bytes OK 2025/03/02-08:58:03.563234 7fcc06ffd6c0 Level-0 table #262: 41333 bytes OK
2024/04/07-18:53:15.765139 7f38a10006c0 Delete type=0 #149 2025/03/02-08:58:03.603057 7fcc06ffd6c0 Delete type=0 #260
2024/04/07-18:53:15.765299 7f38a10006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end) 2025/03/02-08:58:03.603400 7fcc06ffd6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.765326 7f38a10006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end) 2025/03/02-08:58:03.603435 7fcc06ffd6c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 19 : 1
2025/03/02-08:58:03.603443 7fcc06ffd6c0 Compacting 1@1 + 1@2 files
2025/03/02-08:58:03.619393 7fcc06ffd6c0 Generated table #263@1: 4 keys, 41333 bytes
2025/03/02-08:58:03.619438 7fcc06ffd6c0 Compacted 1@1 + 1@2 files => 41333 bytes
2025/03/02-08:58:03.656322 7fcc06ffd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/03/02-08:58:03.656471 7fcc06ffd6c0 Delete type=2 #250
2025/03/02-08:58:03.656662 7fcc06ffd6c0 Delete type=2 #262
2025/03/02-08:58:03.793678 7fcc06ffd6c0 Manual compaction at level-1 from '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 19 : 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/000262.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000152 MANIFEST-000263

View File

@@ -1,8 +1,8 @@
2024/04/24-19:19:43.144098 7fcc5fe006c0 Recovering log #150 2025/03/28-14:48:51.294919 7f9cf67fc6c0 Recovering log #260
2024/04/24-19:19:43.367448 7fcc5fe006c0 Delete type=3 #148 2025/03/28-14:48:51.304807 7f9cf67fc6c0 Delete type=3 #258
2024/04/24-19:19:43.367549 7fcc5fe006c0 Delete type=0 #150 2025/03/28-14:48:51.304864 7f9cf67fc6c0 Delete type=0 #260
2024/04/24-20:38:33.619450 7fcc5e4006c0 Level-0 table #155: started 2025/03/28-14:56:17.643826 7f9cf4ff96c0 Level-0 table #266: started
2024/04/24-20:38:33.619488 7fcc5e4006c0 Level-0 table #155: 0 bytes OK 2025/03/28-14:56:17.643859 7f9cf4ff96c0 Level-0 table #266: 0 bytes OK
2024/04/24-20:38:33.626512 7fcc5e4006c0 Delete type=0 #153 2025/03/28-14:56:17.653389 7f9cf4ff96c0 Delete type=0 #264
2024/04/24-20:38:33.632878 7fcc5e4006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.664831 7f9cf4ff96c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.639837 7fcc5e4006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.664877 7f9cf4ff96c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,15 @@
2024/04/07-18:44:43.841800 7f38a2a006c0 Recovering log #146 2025/03/02-08:57:29.419608 7fcc077fe6c0 Recovering log #256
2024/04/07-18:44:43.851587 7f38a2a006c0 Delete type=3 #144 2025/03/02-08:57:29.430639 7fcc077fe6c0 Delete type=3 #254
2024/04/07-18:44:43.851700 7f38a2a006c0 Delete type=0 #146 2025/03/02-08:57:29.430745 7fcc077fe6c0 Delete type=0 #256
2024/04/07-18:53:15.687706 7f38a10006c0 Level-0 table #151: started 2025/03/02-08:58:02.892095 7fcc06ffd6c0 Level-0 table #261: started
2024/04/07-18:53:15.687751 7f38a10006c0 Level-0 table #151: 0 bytes OK 2025/03/02-08:58:02.910659 7fcc06ffd6c0 Level-0 table #261: 14136 bytes OK
2024/04/07-18:53:15.694223 7f38a10006c0 Delete type=0 #149 2025/03/02-08:58:02.953292 7fcc06ffd6c0 Delete type=0 #259
2024/04/07-18:53:15.709272 7f38a10006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.953720 7fcc06ffd6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.709352 7f38a10006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end) 2025/03/02-08:58:03.126123 7fcc06ffd6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at '!items!wxrzP3NyiHiYnAMJ' @ 196 : 1
2025/03/02-08:58:03.126134 7fcc06ffd6c0 Compacting 1@1 + 1@2 files
2025/03/02-08:58:03.149748 7fcc06ffd6c0 Generated table #262@1: 49 keys, 14136 bytes
2025/03/02-08:58:03.149796 7fcc06ffd6c0 Compacted 1@1 + 1@2 files => 14136 bytes
2025/03/02-08:58:03.189241 7fcc06ffd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/03/02-08:58:03.189672 7fcc06ffd6c0 Delete type=2 #221
2025/03/02-08:58:03.189932 7fcc06ffd6c0 Delete type=2 #261
2025/03/02-08:58:03.190151 7fcc06ffd6c0 Manual compaction at level-1 from '!items!wxrzP3NyiHiYnAMJ' @ 196 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/armes/MANIFEST-000263 Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000152 MANIFEST-000263

View File

@@ -1,8 +1,8 @@
2024/04/24-19:19:43.017708 7fcc64a006c0 Recovering log #150 2025/03/28-14:48:51.264974 7f9cf5ffb6c0 Recovering log #260
2024/04/24-19:19:43.076452 7fcc64a006c0 Delete type=3 #148 2025/03/28-14:48:51.275685 7f9cf5ffb6c0 Delete type=3 #258
2024/04/24-19:19:43.076601 7fcc64a006c0 Delete type=0 #150 2025/03/28-14:48:51.275752 7f9cf5ffb6c0 Delete type=0 #260
2024/04/24-20:38:33.605428 7fcc5e4006c0 Level-0 table #155: started 2025/03/28-14:56:17.599288 7f9cf4ff96c0 Level-0 table #266: started
2024/04/24-20:38:33.605456 7fcc5e4006c0 Level-0 table #155: 0 bytes OK 2025/03/28-14:56:17.599333 7f9cf4ff96c0 Level-0 table #266: 0 bytes OK
2024/04/24-20:38:33.612661 7fcc5e4006c0 Delete type=0 #153 2025/03/28-14:56:17.609691 7f9cf4ff96c0 Delete type=0 #264
2024/04/24-20:38:33.619414 7fcc5e4006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.621022 7f9cf4ff96c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.626638 7fcc5e4006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.621095 7f9cf4ff96c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,15 @@
2024/04/07-18:44:43.814328 7f38a2a006c0 Recovering log #146 2025/03/02-08:57:29.387471 7fcc0cdf96c0 Recovering log #256
2024/04/07-18:44:43.824924 7f38a2a006c0 Delete type=3 #144 2025/03/02-08:57:29.398566 7fcc0cdf96c0 Delete type=3 #254
2024/04/07-18:44:43.825056 7f38a2a006c0 Delete type=0 #146 2025/03/02-08:57:29.398666 7fcc0cdf96c0 Delete type=0 #256
2024/04/07-18:53:15.694330 7f38a10006c0 Level-0 table #151: started 2025/03/02-08:58:02.283451 7fcc06ffd6c0 Level-0 table #261: started
2024/04/07-18:53:15.694352 7f38a10006c0 Level-0 table #151: 0 bytes OK 2025/03/02-08:58:02.302111 7fcc06ffd6c0 Level-0 table #261: 7055 bytes OK
2024/04/07-18:53:15.702258 7f38a10006c0 Delete type=0 #149 2025/03/02-08:58:02.336557 7fcc06ffd6c0 Delete type=0 #259
2024/04/07-18:53:15.709293 7f38a10006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.492336 7fcc06ffd6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.709368 7f38a10006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.492403 7fcc06ffd6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at '!items!tFU5yISK6spdNWco' @ 32 : 1
2025/03/02-08:58:02.492412 7fcc06ffd6c0 Compacting 1@1 + 1@2 files
2025/03/02-08:58:02.510817 7fcc06ffd6c0 Generated table #262@1: 8 keys, 7055 bytes
2025/03/02-08:58:02.510852 7fcc06ffd6c0 Compacted 1@1 + 1@2 files => 7055 bytes
2025/03/02-08:58:02.547701 7fcc06ffd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/03/02-08:58:02.547911 7fcc06ffd6c0 Delete type=2 #221
2025/03/02-08:58:02.548269 7fcc06ffd6c0 Delete type=2 #261
2025/03/02-08:58:02.717763 7fcc06ffd6c0 Manual compaction at level-1 from '!items!tFU5yISK6spdNWco' @ 32 : 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-000152 MANIFEST-000263

View File

@@ -1,8 +1,8 @@
2024/04/24-19:19:42.882823 7fcc64a006c0 Recovering log #150 2025/03/28-14:48:51.234537 7f9cf67fc6c0 Recovering log #260
2024/04/24-19:19:42.947075 7fcc64a006c0 Delete type=3 #148 2025/03/28-14:48:51.245515 7f9cf67fc6c0 Delete type=3 #258
2024/04/24-19:19:42.947209 7fcc64a006c0 Delete type=0 #150 2025/03/28-14:48:51.245574 7f9cf67fc6c0 Delete type=0 #260
2024/04/24-20:38:33.592157 7fcc5e4006c0 Level-0 table #155: started 2025/03/28-14:56:17.609952 7f9cf4ff96c0 Level-0 table #266: started
2024/04/24-20:38:33.592206 7fcc5e4006c0 Level-0 table #155: 0 bytes OK 2025/03/28-14:56:17.609988 7f9cf4ff96c0 Level-0 table #266: 0 bytes OK
2024/04/24-20:38:33.598509 7fcc5e4006c0 Delete type=0 #153 2025/03/28-14:56:17.620719 7f9cf4ff96c0 Delete type=0 #264
2024/04/24-20:38:33.605418 7fcc5e4006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.621043 7f9cf4ff96c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.612914 7fcc5e4006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.621110 7f9cf4ff96c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,15 @@
2024/04/07-18:44:43.786249 7f38a2a006c0 Recovering log #146 2025/03/02-08:57:29.349999 7fcc07fff6c0 Recovering log #256
2024/04/07-18:44:43.797379 7f38a2a006c0 Delete type=3 #144 2025/03/02-08:57:29.360713 7fcc07fff6c0 Delete type=3 #254
2024/04/07-18:44:43.797432 7f38a2a006c0 Delete type=0 #146 2025/03/02-08:57:29.360812 7fcc07fff6c0 Delete type=0 #256
2024/04/07-18:53:15.681177 7f38a10006c0 Level-0 table #151: started 2025/03/02-08:58:02.390835 7fcc06ffd6c0 Level-0 table #261: started
2024/04/07-18:53:15.681197 7f38a10006c0 Level-0 table #151: 0 bytes OK 2025/03/02-08:58:02.408866 7fcc06ffd6c0 Level-0 table #261: 16661 bytes OK
2024/04/07-18:53:15.687480 7f38a10006c0 Delete type=0 #149 2025/03/02-08:58:02.437413 7fcc06ffd6c0 Delete type=0 #259
2024/04/07-18:53:15.709243 7f38a10006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.492365 7fcc06ffd6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.709312 7f38a10006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.603019 7fcc06ffd6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at '!items!yI1zY5k8mAdx9wHK' @ 60 : 1
2025/03/02-08:58:02.603036 7fcc06ffd6c0 Compacting 1@1 + 1@2 files
2025/03/02-08:58:02.621281 7fcc06ffd6c0 Generated table #262@1: 15 keys, 16661 bytes
2025/03/02-08:58:02.621312 7fcc06ffd6c0 Compacted 1@1 + 1@2 files => 16661 bytes
2025/03/02-08:58:02.658344 7fcc06ffd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/03/02-08:58:02.658480 7fcc06ffd6c0 Delete type=2 #221
2025/03/02-08:58:02.658717 7fcc06ffd6c0 Delete type=2 #261
2025/03/02-08:58:02.717809 7fcc06ffd6c0 Manual compaction at level-1 from '!items!yI1zY5k8mAdx9wHK' @ 60 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/equipement/000262.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000152 MANIFEST-000263

View File

@@ -1,8 +1,8 @@
2024/04/24-19:19:43.562687 7fcc5fe006c0 Recovering log #150 2025/03/28-14:48:51.322258 7f9cf5ffb6c0 Recovering log #260
2024/04/24-19:19:43.720740 7fcc5fe006c0 Delete type=3 #148 2025/03/28-14:48:51.332966 7f9cf5ffb6c0 Delete type=3 #258
2024/04/24-19:19:43.720811 7fcc5fe006c0 Delete type=0 #150 2025/03/28-14:48:51.333025 7f9cf5ffb6c0 Delete type=0 #260
2024/04/24-20:38:33.632917 7fcc5e4006c0 Level-0 table #155: started 2025/03/28-14:56:17.653610 7f9cf4ff96c0 Level-0 table #266: started
2024/04/24-20:38:33.632957 7fcc5e4006c0 Level-0 table #155: 0 bytes OK 2025/03/28-14:56:17.653676 7f9cf4ff96c0 Level-0 table #266: 0 bytes OK
2024/04/24-20:38:33.639646 7fcc5e4006c0 Delete type=0 #153 2025/03/28-14:56:17.664679 7f9cf4ff96c0 Delete type=0 #264
2024/04/24-20:38:33.647315 7fcc5e4006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.664840 7f9cf4ff96c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.653621 7fcc5e4006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.664885 7f9cf4ff96c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,15 @@
2024/04/07-18:44:43.869311 7f38a2a006c0 Recovering log #146 2025/03/02-08:57:29.452992 7fcc07fff6c0 Recovering log #256
2024/04/07-18:44:43.880871 7f38a2a006c0 Delete type=3 #144 2025/03/02-08:57:29.463539 7fcc07fff6c0 Delete type=3 #254
2024/04/07-18:44:43.880923 7f38a2a006c0 Delete type=0 #146 2025/03/02-08:57:29.463629 7fcc07fff6c0 Delete type=0 #256
2024/04/07-18:53:15.709571 7f38a10006c0 Level-0 table #151: started 2025/03/02-08:58:02.717980 7fcc06ffd6c0 Level-0 table #261: started
2024/04/07-18:53:15.709616 7f38a10006c0 Level-0 table #151: 0 bytes OK 2025/03/02-08:58:02.732895 7fcc06ffd6c0 Level-0 table #261: 31835 bytes OK
2024/04/07-18:53:15.716550 7f38a10006c0 Delete type=0 #149 2025/03/02-08:58:02.775104 7fcc06ffd6c0 Delete type=0 #259
2024/04/07-18:53:15.736946 7f38a10006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.953625 7fcc06ffd6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.736993 7f38a10006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.953753 7fcc06ffd6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at '!items!zYx0Ak2y1LNTcKlO' @ 604 : 1
2025/03/02-08:58:02.953770 7fcc06ffd6c0 Compacting 1@1 + 1@2 files
2025/03/02-08:58:02.971582 7fcc06ffd6c0 Generated table #262@1: 151 keys, 31835 bytes
2025/03/02-08:58:02.971622 7fcc06ffd6c0 Compacted 1@1 + 1@2 files => 31835 bytes
2025/03/02-08:58:03.008846 7fcc06ffd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/03/02-08:58:03.008998 7fcc06ffd6c0 Delete type=2 #221
2025/03/02-08:58:03.009268 7fcc06ffd6c0 Delete type=2 #261
2025/03/02-08:58:03.190077 7fcc06ffd6c0 Manual compaction at level-1 from '!items!zYx0Ak2y1LNTcKlO' @ 604 : 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-000152 MANIFEST-000263

View File

@@ -1,8 +1,8 @@
2024/04/24-19:19:43.080280 7fcc5fe006c0 Recovering log #150 2025/03/28-14:48:51.280283 7f9cf57fa6c0 Recovering log #260
2024/04/24-19:19:43.137577 7fcc5fe006c0 Delete type=3 #148 2025/03/28-14:48:51.290774 7f9cf57fa6c0 Delete type=3 #258
2024/04/24-19:19:43.137905 7fcc5fe006c0 Delete type=0 #150 2025/03/28-14:48:51.290830 7f9cf57fa6c0 Delete type=0 #260
2024/04/24-20:38:33.612932 7fcc5e4006c0 Level-0 table #155: started 2025/03/28-14:56:17.575147 7f9cf4ff96c0 Level-0 table #266: started
2024/04/24-20:38:33.613011 7fcc5e4006c0 Level-0 table #155: 0 bytes OK 2025/03/28-14:56:17.575265 7f9cf4ff96c0 Level-0 table #266: 0 bytes OK
2024/04/24-20:38:33.619236 7fcc5e4006c0 Delete type=0 #153 2025/03/28-14:56:17.588993 7f9cf4ff96c0 Delete type=0 #264
2024/04/24-20:38:33.626625 7fcc5e4006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.620966 7f9cf4ff96c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.632899 7fcc5e4006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.621063 7f9cf4ff96c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,15 @@
2024/04/07-18:44:43.827816 7f38a3e006c0 Recovering log #146 2025/03/02-08:57:29.403874 7fcc07fff6c0 Recovering log #256
2024/04/07-18:44:43.838730 7f38a3e006c0 Delete type=3 #144 2025/03/02-08:57:29.414354 7fcc07fff6c0 Delete type=3 #254
2024/04/07-18:44:43.838786 7f38a3e006c0 Delete type=0 #146 2025/03/02-08:57:29.414440 7fcc07fff6c0 Delete type=0 #256
2024/04/07-18:53:15.702497 7f38a10006c0 Level-0 table #151: started 2025/03/02-08:58:02.336864 7fcc06ffd6c0 Level-0 table #261: started
2024/04/07-18:53:15.702540 7f38a10006c0 Level-0 table #151: 0 bytes OK 2025/03/02-08:58:02.352668 7fcc06ffd6c0 Level-0 table #261: 19975 bytes OK
2024/04/07-18:53:15.708964 7f38a10006c0 Delete type=0 #149 2025/03/02-08:58:02.390518 7fcc06ffd6c0 Delete type=0 #259
2024/04/07-18:53:15.709333 7f38a10006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.492352 7fcc06ffd6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.709410 7f38a10006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.548411 7fcc06ffd6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at '!items!z1HtkvazCGHut7cz' @ 192 : 1
2025/03/02-08:58:02.548423 7fcc06ffd6c0 Compacting 1@1 + 1@2 files
2025/03/02-08:58:02.566346 7fcc06ffd6c0 Generated table #262@1: 48 keys, 19975 bytes
2025/03/02-08:58:02.566384 7fcc06ffd6c0 Compacted 1@1 + 1@2 files => 19975 bytes
2025/03/02-08:58:02.602369 7fcc06ffd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/03/02-08:58:02.602545 7fcc06ffd6c0 Delete type=2 #221
2025/03/02-08:58:02.602837 7fcc06ffd6c0 Delete type=2 #261
2025/03/02-08:58:02.717782 7fcc06ffd6c0 Manual compaction at level-1 from '!items!z1HtkvazCGHut7cz' @ 192 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/mutations/000172.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000062 MANIFEST-000173

View File

@@ -1,8 +1,8 @@
2024/04/24-19:19:42.952046 7fcc5fe006c0 Recovering log #60 2025/03/28-14:48:51.249116 7f9cf6ffd6c0 Recovering log #170
2024/04/24-19:19:43.001963 7fcc5fe006c0 Delete type=3 #58 2025/03/28-14:48:51.259201 7f9cf6ffd6c0 Delete type=3 #168
2024/04/24-19:19:43.002046 7fcc5fe006c0 Delete type=0 #60 2025/03/28-14:48:51.259300 7f9cf6ffd6c0 Delete type=0 #170
2024/04/24-20:38:33.598679 7fcc5e4006c0 Level-0 table #65: started 2025/03/28-14:56:17.589172 7f9cf4ff96c0 Level-0 table #176: started
2024/04/24-20:38:33.598713 7fcc5e4006c0 Level-0 table #65: 0 bytes OK 2025/03/28-14:56:17.589229 7f9cf4ff96c0 Level-0 table #176: 0 bytes OK
2024/04/24-20:38:33.605307 7fcc5e4006c0 Delete type=0 #63 2025/03/28-14:56:17.599147 7f9cf4ff96c0 Delete type=0 #174
2024/04/24-20:38:33.612894 7fcc5e4006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.621000 7f9cf4ff96c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.619433 7fcc5e4006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.621080 7f9cf4ff96c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,15 @@
2024/04/07-18:44:43.800976 7f38a3e006c0 Recovering log #56 2025/03/02-08:57:29.369233 7fcc0d5fa6c0 Recovering log #166
2024/04/07-18:44:43.810946 7f38a3e006c0 Delete type=3 #54 2025/03/02-08:57:29.380959 7fcc0d5fa6c0 Delete type=3 #164
2024/04/07-18:44:43.811011 7f38a3e006c0 Delete type=0 #56 2025/03/02-08:57:29.381045 7fcc0d5fa6c0 Delete type=0 #166
2024/04/07-18:53:15.674292 7f38a10006c0 Level-0 table #61: started 2025/03/02-08:58:02.437610 7fcc06ffd6c0 Level-0 table #171: started
2024/04/07-18:53:15.674318 7f38a10006c0 Level-0 table #61: 0 bytes OK 2025/03/02-08:58:02.453630 7fcc06ffd6c0 Level-0 table #171: 58279 bytes OK
2024/04/07-18:53:15.680930 7f38a10006c0 Delete type=0 #59 2025/03/02-08:58:02.492092 7fcc06ffd6c0 Delete type=0 #169
2024/04/07-18:53:15.681066 7f38a10006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.492377 7fcc06ffd6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.681085 7f38a10006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.659007 7fcc06ffd6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at '!items!zttESycGKltfwCzJ' @ 652 : 1
2025/03/02-08:58:02.659030 7fcc06ffd6c0 Compacting 1@1 + 1@2 files
2025/03/02-08:58:02.677005 7fcc06ffd6c0 Generated table #172@1: 167 keys, 58948 bytes
2025/03/02-08:58:02.677035 7fcc06ffd6c0 Compacted 1@1 + 1@2 files => 58948 bytes
2025/03/02-08:58:02.716911 7fcc06ffd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/03/02-08:58:02.717127 7fcc06ffd6c0 Delete type=2 #131
2025/03/02-08:58:02.717540 7fcc06ffd6c0 Delete type=2 #171
2025/03/02-08:58:02.717824 7fcc06ffd6c0 Manual compaction at level-1 from '!items!zttESycGKltfwCzJ' @ 652 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/profils/000262.ldb Normal file

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000152 MANIFEST-000263

View File

@@ -1,8 +1,8 @@
2024/04/24-19:19:43.730272 7fcc654006c0 Recovering log #150 2025/03/28-14:48:51.338096 7f9cf57fa6c0 Recovering log #260
2024/04/24-19:19:43.889184 7fcc654006c0 Delete type=3 #148 2025/03/28-14:48:51.348604 7f9cf57fa6c0 Delete type=3 #258
2024/04/24-19:19:43.889335 7fcc654006c0 Delete type=0 #150 2025/03/28-14:48:51.348690 7f9cf57fa6c0 Delete type=0 #260
2024/04/24-20:38:33.639856 7fcc5e4006c0 Level-0 table #155: started 2025/03/28-14:56:17.632377 7f9cf4ff96c0 Level-0 table #266: started
2024/04/24-20:38:33.639921 7fcc5e4006c0 Level-0 table #155: 0 bytes OK 2025/03/28-14:56:17.632408 7f9cf4ff96c0 Level-0 table #266: 0 bytes OK
2024/04/24-20:38:33.647189 7fcc5e4006c0 Delete type=0 #153 2025/03/28-14:56:17.643709 7f9cf4ff96c0 Delete type=0 #264
2024/04/24-20:38:33.653608 7fcc5e4006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.664820 7f9cf4ff96c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.660740 7fcc5e4006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.664869 7f9cf4ff96c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,15 @@
2024/04/07-18:44:43.885807 7f38a3e006c0 Recovering log #146 2025/03/02-08:57:29.472323 7fcc077fe6c0 Recovering log #256
2024/04/07-18:44:43.895718 7f38a3e006c0 Delete type=3 #144 2025/03/02-08:57:29.483693 7fcc077fe6c0 Delete type=3 #254
2024/04/07-18:44:43.895858 7f38a3e006c0 Delete type=0 #146 2025/03/02-08:57:29.483936 7fcc077fe6c0 Delete type=0 #256
2024/04/07-18:53:15.716770 7f38a10006c0 Level-0 table #151: started 2025/03/02-08:58:02.831242 7fcc06ffd6c0 Level-0 table #261: started
2024/04/07-18:53:15.716808 7f38a10006c0 Level-0 table #151: 0 bytes OK 2025/03/02-08:58:02.854958 7fcc06ffd6c0 Level-0 table #261: 29943 bytes OK
2024/04/07-18:53:15.723524 7f38a10006c0 Delete type=0 #149 2025/03/02-08:58:02.891885 7fcc06ffd6c0 Delete type=0 #259
2024/04/07-18:53:15.736955 7f38a10006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.953694 7fcc06ffd6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.737004 7f38a10006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end) 2025/03/02-08:58:03.070420 7fcc06ffd6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at '!items!tFQqcxmkS3MT6ASE' @ 60 : 1
2025/03/02-08:58:03.070431 7fcc06ffd6c0 Compacting 1@1 + 1@2 files
2025/03/02-08:58:03.091252 7fcc06ffd6c0 Generated table #262@1: 15 keys, 29943 bytes
2025/03/02-08:58:03.091293 7fcc06ffd6c0 Compacted 1@1 + 1@2 files => 29943 bytes
2025/03/02-08:58:03.125600 7fcc06ffd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/03/02-08:58:03.125776 7fcc06ffd6c0 Delete type=2 #221
2025/03/02-08:58:03.125992 7fcc06ffd6c0 Delete type=2 #261
2025/03/02-08:58:03.190126 7fcc06ffd6c0 Manual compaction at level-1 from '!items!tFQqcxmkS3MT6ASE' @ 60 : 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-000152 MANIFEST-000263

View File

@@ -1,8 +1,8 @@
2024/04/24-19:19:43.378670 7fcc654006c0 Recovering log #150 2025/03/28-14:48:51.307945 7f9cf6ffd6c0 Recovering log #260
2024/04/24-19:19:43.554194 7fcc654006c0 Delete type=3 #148 2025/03/28-14:48:51.319172 7f9cf6ffd6c0 Delete type=3 #258
2024/04/24-19:19:43.554281 7fcc654006c0 Delete type=0 #150 2025/03/28-14:48:51.319256 7f9cf6ffd6c0 Delete type=0 #260
2024/04/24-20:38:33.626647 7fcc5e4006c0 Level-0 table #155: started 2025/03/28-14:56:17.621210 7f9cf4ff96c0 Level-0 table #266: started
2024/04/24-20:38:33.626669 7fcc5e4006c0 Level-0 table #155: 0 bytes OK 2025/03/28-14:56:17.621292 7f9cf4ff96c0 Level-0 table #266: 0 bytes OK
2024/04/24-20:38:33.632751 7fcc5e4006c0 Delete type=0 #153 2025/03/28-14:56:17.632240 7f9cf4ff96c0 Delete type=0 #264
2024/04/24-20:38:33.639816 7fcc5e4006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.664806 7f9cf4ff96c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.647329 7fcc5e4006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.664849 7f9cf4ff96c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)

View File

@@ -1,8 +1,15 @@
2024/04/07-18:44:43.856327 7f38a3e006c0 Recovering log #146 2025/03/02-08:57:29.437152 7fcc0d5fa6c0 Recovering log #256
2024/04/07-18:44:43.867226 7f38a3e006c0 Delete type=3 #144 2025/03/02-08:57:29.448466 7fcc0d5fa6c0 Delete type=3 #254
2024/04/07-18:44:43.867361 7f38a3e006c0 Delete type=0 #146 2025/03/02-08:57:29.448590 7fcc0d5fa6c0 Delete type=0 #256
2024/04/07-18:53:15.723744 7f38a10006c0 Level-0 table #151: started 2025/03/02-08:58:02.775317 7fcc06ffd6c0 Level-0 table #261: started
2024/04/07-18:53:15.723796 7f38a10006c0 Level-0 table #151: 0 bytes OK 2025/03/02-08:58:02.796430 7fcc06ffd6c0 Level-0 table #261: 3490 bytes OK
2024/04/07-18:53:15.730185 7f38a10006c0 Delete type=0 #149 2025/03/02-08:58:02.830953 7fcc06ffd6c0 Delete type=0 #259
2024/04/07-18:53:15.736963 7f38a10006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end) 2025/03/02-08:58:02.953665 7fcc06ffd6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.736999 7f38a10006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end) 2025/03/02-08:58:03.009569 7fcc06ffd6c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at '!items!yszkersMTE4p9VzP' @ 56 : 1
2025/03/02-08:58:03.009590 7fcc06ffd6c0 Compacting 1@1 + 1@2 files
2025/03/02-08:58:03.027476 7fcc06ffd6c0 Generated table #262@1: 14 keys, 3490 bytes
2025/03/02-08:58:03.027507 7fcc06ffd6c0 Compacted 1@1 + 1@2 files => 3490 bytes
2025/03/02-08:58:03.069833 7fcc06ffd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/03/02-08:58:03.070020 7fcc06ffd6c0 Delete type=2 #221
2025/03/02-08:58:03.070284 7fcc06ffd6c0 Delete type=2 #261
2025/03/02-08:58:03.190098 7fcc06ffd6c0 Manual compaction at level-1 from '!items!yszkersMTE4p9VzP' @ 56 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/scenes/000101.ldb Normal file

Binary file not shown.

1
packs/scenes/CURRENT Normal file
View File

@@ -0,0 +1 @@
MANIFEST-000102

8
packs/scenes/LOG Normal file
View File

@@ -0,0 +1,8 @@
2025/03/28-14:48:51.398097 7f9cf57fa6c0 Recovering log #99
2025/03/28-14:48:51.409374 7f9cf57fa6c0 Delete type=3 #97
2025/03/28-14:48:51.409433 7f9cf57fa6c0 Delete type=0 #99
2025/03/28-14:56:17.695479 7f9cf4ff96c0 Level-0 table #105: started
2025/03/28-14:56:17.695512 7f9cf4ff96c0 Level-0 table #105: 0 bytes OK
2025/03/28-14:56:17.706325 7f9cf4ff96c0 Delete type=0 #103
2025/03/28-14:56:17.706520 7f9cf4ff96c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
2025/03/28-14:56:17.706557 7f9cf4ff96c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)

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

@@ -0,0 +1,15 @@
2025/03/02-08:57:29.548716 7fcc077fe6c0 Recovering log #95
2025/03/02-08:57:29.559071 7fcc077fe6c0 Delete type=3 #93
2025/03/02-08:57:29.559165 7fcc077fe6c0 Delete type=0 #95
2025/03/02-08:58:03.269443 7fcc06ffd6c0 Level-0 table #100: started
2025/03/02-08:58:03.290602 7fcc06ffd6c0 Level-0 table #100: 1654 bytes OK
2025/03/02-08:58:03.318020 7fcc06ffd6c0 Delete type=0 #98
2025/03/02-08:58:03.371942 7fcc06ffd6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
2025/03/02-08:58:03.425430 7fcc06ffd6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at '!scenes!mfosNsLsHN5Pf4TO' @ 95 : 1
2025/03/02-08:58:03.425445 7fcc06ffd6c0 Compacting 1@1 + 1@2 files
2025/03/02-08:58:03.440101 7fcc06ffd6c0 Generated table #101@1: 2 keys, 1654 bytes
2025/03/02-08:58:03.440139 7fcc06ffd6c0 Compacted 1@1 + 1@2 files => 1654 bytes
2025/03/02-08:58:03.478086 7fcc06ffd6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2025/03/02-08:58:03.478232 7fcc06ffd6c0 Delete type=2 #88
2025/03/02-08:58:03.478455 7fcc06ffd6c0 Delete type=2 #100
2025/03/02-08:58:03.603375 7fcc06ffd6c0 Manual compaction at level-1 from '!scenes!mfosNsLsHN5Pf4TO' @ 95 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@@ -1 +1 @@
MANIFEST-000152 MANIFEST-000260

View File

@@ -1,7 +1,7 @@
2024/04/24-19:19:44.361715 7fcc5fe006c0 Recovering log #150 2025/03/28-14:48:51.384307 7f9cf5ffb6c0 Recovering log #258
2024/04/24-19:19:44.586287 7fcc5fe006c0 Delete type=3 #148 2025/03/28-14:48:51.394425 7f9cf5ffb6c0 Delete type=3 #256
2024/04/24-19:19:44.586391 7fcc5fe006c0 Delete type=0 #150 2025/03/28-14:48:51.394516 7f9cf5ffb6c0 Delete type=0 #258
2024/04/24-20:38:33.660752 7fcc5e4006c0 Level-0 table #155: started 2025/03/28-14:56:17.664999 7f9cf4ff96c0 Level-0 table #263: started
2024/04/24-20:38:33.660779 7fcc5e4006c0 Level-0 table #155: 0 bytes OK 2025/03/28-14:56:17.665030 7f9cf4ff96c0 Level-0 table #263: 0 bytes OK
2024/04/24-20:38:33.667170 7fcc5e4006c0 Delete type=0 #153 2025/03/28-14:56:17.674846 7f9cf4ff96c0 Delete type=0 #261
2024/04/24-20:38:33.674538 7fcc5e4006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2025/03/28-14:56:17.706469 7f9cf4ff96c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@@ -1,7 +1,7 @@
2024/04/07-18:44:43.927559 7f38a2a006c0 Recovering log #146 2025/03/02-08:57:29.533057 7fcc0cdf96c0 Recovering log #254
2024/04/07-18:44:43.937525 7f38a2a006c0 Delete type=3 #144 2025/03/02-08:57:29.543322 7fcc0cdf96c0 Delete type=3 #252
2024/04/07-18:44:43.937610 7f38a2a006c0 Delete type=0 #146 2025/03/02-08:57:29.543437 7fcc0cdf96c0 Delete type=0 #254
2024/04/07-18:53:15.737130 7f38a10006c0 Level-0 table #151: started 2025/03/02-08:58:03.190383 7fcc06ffd6c0 Level-0 table #259: started
2024/04/07-18:53:15.737157 7f38a10006c0 Level-0 table #151: 0 bytes OK 2025/03/02-08:58:03.190443 7fcc06ffd6c0 Level-0 table #259: 0 bytes OK
2024/04/07-18:53:15.743304 7f38a10006c0 Delete type=0 #149 2025/03/02-08:58:03.218435 7fcc06ffd6c0 Delete type=0 #257
2024/04/07-18:53:15.765257 7f38a10006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2025/03/02-08:58:03.371911 7fcc06ffd6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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