Compare commits

...

12 Commits

132 changed files with 883 additions and 551 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 KiB

View File

@ -12,7 +12,7 @@ export class HawkmoonActorSheet extends ActorSheet {
/** @override */ /** @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;
@ -146,6 +147,23 @@ export class HawkmoonActorSheet extends ActorSheet {
let armeId = li.data("item-id") let armeId = li.data("item-id")
this.actor.rollArmeOffensif(armeId) this.actor.rollArmeOffensif(armeId)
}) })
html.find('.roll-assommer').click((event) => {
this.actor.rollAssommer()
})
html.find('.roll-coup-bas').click((event) => {
this.actor.rollCoupBas()
})
html.find('.roll-immobiliser').click((event) => {
this.actor.rollImmobiliser()
})
html.find('.roll-repousser').click((event) => {
this.actor.rollRepousser()
})
html.find('.roll-desengager').click((event) => {
this.actor.rollDesengager()
})
html.find('.roll-arme-degats').click((event) => { html.find('.roll-arme-degats').click((event) => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
let armeId = li.data("item-id") let armeId = li.data("item-id")

View File

@ -67,22 +67,22 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareArme(arme) { prepareArme(arme) {
arme = duplicate(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 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 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 +146,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 +168,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 })
} }
@ -211,7 +211,7 @@ export class HawkmoonActor extends Actor {
vitesseTotal: this.getVitesseBase() + this.system.combat.vitessebonus, vitesseTotal: this.getVitesseBase() + this.system.combat.vitessebonus,
defenseBase: this.getDefenseBase(), defenseBase: this.getDefenseBase(),
protection: this.getProtection(), protection: this.getProtection(),
defenseTotal: this.getDefenseBase() + this.system.combat.defensebonus + this.getProtection() - this.getTotalAdversite() defenseTotal: this.getDefenseBase() + this.system.combat.defensebonus + this.getProtection() - this.getTotalAdversite() + (this.system.combat.defensetotale ? 3 : 0)
} }
return combat return combat
} }
@ -235,21 +235,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 +289,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 +297,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 +311,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,19 +395,28 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
changeEtatCombativite(value) { changeEtatCombativite(value) {
let sante = duplicate(this.system.sante) if (value === "vaincu") {
value = 200
}
let sante = foundry.utils.duplicate(this.system.sante)
sante.etat += Number(value) sante.etat += 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>` })
@ -422,13 +438,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 });
} }
@ -450,9 +466,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 })
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -497,7 +514,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 }])
} }
@ -519,7 +536,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
@ -534,7 +551,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)
@ -566,23 +583,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.hasFeinte = this.system.bonneaventure.actuelle > 0 && this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "feinte")
rollData.isMonte = this.system.combat.monte
rollData.config = game.system.hawkmoon.config
if (attrKey) { 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
@ -619,6 +646,53 @@ 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 rollAssommer() {
let rollData = this.getCommonRollData("pui", undefined, "Filouterie")
rollData.assomer = true
rollData.conditionsCommunes = true
HawkmoonUtility.updateWithTarget(rollData)
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollCoupBas() {
let rollData = this.getCommonRollData("pui", undefined, "Mêlée")
rollData.coupBas = true
rollData.conditionsCommunes = true
HawkmoonUtility.updateWithTarget(rollData)
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollImmobiliser() {
let rollData = this.getCommonRollData("pui", undefined, "Mêlée")
rollData.immobiliser = true
rollData.conditionsCommunes = true
rollData.cibleconsciente = true
HawkmoonUtility.updateWithTarget(rollData)
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollRepousser() {
let rollData = this.getCommonRollData("pui", undefined, "Mêlée")
rollData.repousser = true
rollData.conditionsCommunes = true
rollData.cibleconsciente = true
HawkmoonUtility.updateWithTarget(rollData)
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollDesengager() {
let rollData = this.getCommonRollData("adr", undefined, "Mouvements")
rollData.desengager = true
rollData.conditionsCommunes = true
HawkmoonUtility.updateWithTarget(rollData)
let rollDialog = await HawkmoonRollDialog.create(this, rollData)
rollDialog.render(true)
}
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollArmeDegats(armeId, targetVigueur = undefined, rollDataInput = undefined) { async rollArmeDegats(armeId, targetVigueur = undefined, rollDataInput = undefined) {
@ -641,19 +715,25 @@ export class HawkmoonActor extends Actor {
if (rollDataInput?.attaqueCharge) { if (rollDataInput?.attaqueCharge) {
bonus = 5 bonus = 5
} }
roll = new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll({ async: false }) if (rollDataInput?.chargeCavalerie) {
bonus = 6
}
roll = await new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll()
} else { } else {
if (rollDataInput?.attaqueCharge) { if (rollDataInput?.attaqueCharge) {
bonus = 3 bonus = 3
} }
roll = new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll({ async: false }) if (rollDataInput?.chargeCavalerie) {
bonus = 4
}
roll = await new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll()
} }
await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode")); 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,
finalResult: roll.total, finalResult: roll.total,

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

@ -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,16 @@ 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(),
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;

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 } ]);

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

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

View File

@ -13,7 +13,7 @@ export class HawkmoonCreatureSheet extends HawkmoonActorSheet {
/** @override */ /** @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 */
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -105,6 +120,7 @@ Hooks.once("ready", function () {
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) => {
@ -93,6 +94,15 @@ export class HawkmoonRollDialog extends Dialog {
html.find('#defenseur-au-sol').change((event) => { html.find('#defenseur-au-sol').change((event) => {
this.rollData.defenseurAuSol = event.currentTarget.checked this.rollData.defenseurAuSol = event.currentTarget.checked
}) })
html.find('#ambidextre-1').change((event) => {
this.rollData.ambidextre1 = event.currentTarget.checked
})
html.find('#ambidextre-2').change((event) => {
this.rollData.ambidextre2 = event.currentTarget.checked
})
html.find('#attaque-monte').change((event) => {
this.rollData.attqueMonte = event.currentTarget.checked
})
html.find('#defenseur-aveugle').change((event) => { html.find('#defenseur-aveugle').change((event) => {
this.rollData.defenseurAveugle = event.currentTarget.checked this.rollData.defenseurAveugle = event.currentTarget.checked
}) })
@ -108,6 +118,21 @@ export class HawkmoonRollDialog extends Dialog {
html.find('#attaque-charge').change((event) => { html.find('#attaque-charge').change((event) => {
this.rollData.attaqueCharge = event.currentTarget.checked this.rollData.attaqueCharge = event.currentTarget.checked
}) })
html.find('#charge-cavalerie').change((event) => {
this.rollData.chargeCavalerie = event.currentTarget.checked
})
html.find('#attaquants-multiple').change((event) => {
this.rollData.attaquantsMultiples = event.currentTarget.checked
})
html.find('#soutiens').change((event) => {
this.rollData.soutiens = Number(event.currentTarget.value)
})
html.find('#feinte').change((event) => {
this.rollData.feinte = event.currentTarget.checked
})
html.find('#contenir').change((event) => {
this.rollData.contenir = event.currentTarget.checked
})
html.find('#attaque-desarme').change((event) => { html.find('#attaque-desarme').change((event) => {
this.rollData.attaqueDesarme = event.currentTarget.checked this.rollData.attaqueDesarme = event.currentTarget.checked
}) })

View File

@ -114,6 +114,26 @@ export class HawkmoonUtility {
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp" let 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;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -140,9 +160,9 @@ export class HawkmoonUtility {
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget) let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId) let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "hawkmoon-roll") let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = this.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)
}) })
@ -150,14 +170,14 @@ export class HawkmoonUtility {
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget) let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId) let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "hawkmoon-roll") let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData) let actor = HawkmoonUtility.getActorFromRollData(rollData)
actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData) actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData)
}) })
html.on("click", '.roll-chat-degat-devastateur', async event => { html.on("click", '.roll-chat-degat-devastateur', async event => {
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget) let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId) let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "hawkmoon-roll") let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData) let actor = HawkmoonUtility.getActorFromRollData(rollData)
rollData.applyCoupDevastateur = true rollData.applyCoupDevastateur = true
actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData) actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData)
}) })
@ -172,10 +192,7 @@ export class HawkmoonUtility {
'systems/fvtt-hawkmoon-cyd/templates/partial-item-header.html', 'systems/fvtt-hawkmoon-cyd/templates/partial-item-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}`
@ -411,6 +428,16 @@ export class HawkmoonUtility {
if (rollData.bonusArmeNaturelle) { if (rollData.bonusArmeNaturelle) {
rollData.diceFormula += `+${rollData.bonusArmeNaturelle}` rollData.diceFormula += `+${rollData.bonusArmeNaturelle}`
} }
if (rollData.attaquantsMultiples) {
rollData.diceFormula += `+3`
}
if (rollData.hasAmbidextre) {
if ( rollData.attaqueAmbidextre1) {
rollData.diceFormula += `-3`
} else if ( rollData.attaqueAmbidextre2) {
rollData.diceFormula += `-5`
}
}
if (rollData.defenseurAuSol) { if (rollData.defenseurAuSol) {
rollData.diceFormula += `+3` rollData.diceFormula += `+3`
} }
@ -426,6 +453,9 @@ export class HawkmoonUtility {
if (rollData.defenseurImmobilise) { if (rollData.defenseurImmobilise) {
rollData.diceFormula += `+5` rollData.diceFormula += `+5`
} }
if (rollData.soutiens > 0) { // 1 soutien = +3, 2 soutiens = +4, 3 soutiens = +5
rollData.diceFormula += `+${rollData.soutiens+2}`
}
if (rollData.arme?.system.isDistance) { if (rollData.arme?.system.isDistance) {
rollData.difficulte = __distanceDifficulte[rollData.distanceTir] rollData.difficulte = __distanceDifficulte[rollData.distanceTir]
@ -434,6 +464,7 @@ export class HawkmoonUtility {
rollData.difficulte += __tailleCible[rollData.tailleCible] rollData.difficulte += __tailleCible[rollData.tailleCible]
rollData.difficulte += rollData.cibleDeplace ? 3 : 0 rollData.difficulte += rollData.cibleDeplace ? 3 : 0
rollData.difficulte += rollData.cibleCaC ? 3 : 0 rollData.difficulte += rollData.cibleCaC ? 3 : 0
rollData.difficulte += rollData.protectionDefenseur
} }
if (rollData.attaqueDesarme) { if (rollData.attaqueDesarme) {
rollData.difficulte += 10 rollData.difficulte += 10
@ -446,9 +477,12 @@ export class HawkmoonUtility {
rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}` rollData.diceFormula += `+${rollData.arme.system.bonusmaniementoff}`
} }
let myRoll = new Roll(rollData.diceFormula).roll({ async: false }) // Gestion de la feinte éventuelle
rollData.nbCombativitePerdu = 1
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
@ -456,36 +490,47 @@ export class HawkmoonUtility {
if (rollData.isInit) { if (rollData.isInit) {
actor.setFlag("world", "last-initiative", rollData.finalResult) actor.setFlag("world", "last-initiative", rollData.finalResult)
} }
if (rollData.feinte) {
actor.changeBonneAventure(-1)
if ( rollData.isHeroique) {
rollData.nbCombativitePerdu = "vaincu"
} else if ( rollData.isSuccess) {
rollData.nbCombativitePerdu = 2
}
}
this.createChatWithRollMode(rollData.alias, { this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData) content: await renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData)
}, rollData) }, rollData)
if (rollData.arme && rollData.isSuccess && rollData.defenderTokenId) { if ( (rollData.coupBas || rollData.arme) && rollData.isSuccess && rollData.defenderTokenId) {
this.applyCombativite(rollData, 1) this.applyCombativite(rollData, rollData.nbCombativitePerdu)
}
if (rollData.coupBas && rollData.isSuccess && rollData.defenderTokenId) {
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
defender.incDecAdversite("bleue", -2)
} }
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
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
@ -519,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);
@ -583,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(),
@ -601,7 +646,12 @@ export class HawkmoonUtility {
cibleCouvert: "aucun", cibleCouvert: "aucun",
distanceTir: "porteemoyenne", distanceTir: "porteemoyenne",
attaqueCharge: false, attaqueCharge: false,
attaqueDesarme: false attaqueDesarme: false,
attaqueAmbidextre1 : false,
attaqueAmbidextre2 : false,
chargeCavalerie : false,
contenir : false,
soutiens : 0
} }
return rollData return rollData
} }
@ -615,9 +665,17 @@ export class HawkmoonUtility {
rollData.armeDefense = defender.getBestDefenseValue() rollData.armeDefense = defender.getBestDefenseValue()
rollData.targetVigueur = defender.getVigueur() rollData.targetVigueur = defender.getVigueur()
rollData.protectionDefenseur = defender.getProtection() rollData.protectionDefenseur = defender.getProtection()
if (rollData.armeDefense) { if (rollData.immobiliser || rollData.repousser) {
let combatValues = defender.getCombatValues()
rollData.difficulte = combatValues.defenseTotal + (rollData.armeDefense && rollData.cibleconsciente ? 5 : 0)
} else if (rollData.coupBas) {
let combatValues = defender.getCombatValues()
rollData.difficulte = combatValues.defenseTotal
}else if ( rollData.assomer) {
rollData.difficulte = 3 + (defender.system.attributs.tre.value * 2)
} else if (rollData.armeDefense) {
rollData.difficulte = rollData.armeDefense.system.totalDefensif rollData.difficulte = rollData.armeDefense.system.totalDefensif
if ( !rollData.arme.system.armenaturelle && !rollData.arme.system.armefortune ){ if ( !rollData.desengager && !rollData.arme.system.armenaturelle && !rollData.arme.system.armefortune ){
if (rollData.armeDefense.system.armenaturelle || rollData.armeDefense.system.armefortune) { if (rollData.armeDefense.system.armenaturelle || rollData.armeDefense.system.armefortune) {
rollData.bonusArmeNaturelle = 3 rollData.bonusArmeNaturelle = 3
} }
@ -639,7 +697,7 @@ export class HawkmoonUtility {
let msg = game.messages.get(msgId) let msg = game.messages.get(msgId)
if (msg) { if (msg) {
let rollData = msg.getFlag("world", "hawkmoon-roll") let rollData = msg.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData) let actor = HawkmoonUtility.getActorFromRollData(rollData)
actor.changeBonneAventure(changed) actor.changeBonneAventure(changed)
rollData.isReroll = true rollData.isReroll = true
rollData.textBonus = "Bonus de Points d'Aventure" rollData.textBonus = "Bonus de Points d'Aventure"
@ -658,7 +716,7 @@ export class HawkmoonUtility {
let msg = game.messages.get(msgId) let msg = game.messages.get(msgId)
if (msg) { if (msg) {
let rollData = msg.getFlag("world", "hawkmoon-roll") let rollData = msg.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData) let actor = HawkmoonUtility.getActorFromRollData(rollData)
actor.changeEclat(changed) actor.changeEclat(changed)
rollData.isReroll = true rollData.isReroll = true
rollData.textBonus = "Bonus d'Eclat" rollData.textBonus = "Bonus d'Eclat"
@ -677,13 +735,13 @@ export class HawkmoonUtility {
let canApplyBA = function (li) { let canApplyBA = function (li) {
let message = game.messages.get(li.attr("data-message-id")) let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "hawkmoon-roll") let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData) let actor = HawkmoonUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getBonneAventure() > 0) return (!rollData.isReroll && actor.getBonneAventure() > 0)
} }
let canApplyPE = function (li) { let canApplyPE = function (li) {
let message = game.messages.get(li.attr("data-message-id")) let message = game.messages.get(li.attr("data-message-id"))
let rollData = message.getFlag("world", "hawkmoon-roll") let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = this.getActorFromRollData(rollData) let actor = HawkmoonUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getEclat() > 0) return (!rollData.isReroll && actor.getEclat() > 0)
} }
options.push( options.push(

View File

@ -1 +1 @@
MANIFEST-000112 MANIFEST-000213

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.754352 7f04234006c0 Recovering log #110 2024/06/01-08:52:45.194842 7f28a4c006c0 Recovering log #211
2024/02/24-17:02:14.807801 7f04234006c0 Delete type=3 #108 2024/06/01-08:52:45.205284 7f28a4c006c0 Delete type=3 #209
2024/02/24-17:02:14.807944 7f04234006c0 Delete type=0 #110 2024/06/01-08:52:45.205352 7f28a4c006c0 Delete type=0 #211
2024/02/24-17:02:44.940487 7f0421a006c0 Level-0 table #115: started 2024/06/01-09:10:33.808591 7f289f8006c0 Level-0 table #216: started
2024/02/24-17:02:44.940520 7f0421a006c0 Level-0 table #115: 0 bytes OK 2024/06/01-09:10:33.808615 7f289f8006c0 Level-0 table #216: 0 bytes OK
2024/02/24-17:02:44.990896 7f0421a006c0 Delete type=0 #113 2024/06/01-09:10:33.814886 7f289f8006c0 Delete type=0 #214
2024/02/24-17:02:44.991050 7f0421a006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.815181 7f289f8006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.991066 7f0421a006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.815226 7f289f8006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.161901 7f0422a006c0 Recovering log #106 2024/05/31-23:16:45.991898 7f18090006c0 Recovering log #207
2024/02/24-15:27:21.172307 7f0422a006c0 Delete type=3 #104 2024/05/31-23:16:46.046753 7f18090006c0 Delete type=3 #205
2024/02/24-15:27:21.172420 7f0422a006c0 Delete type=0 #106 2024/05/31-23:16:46.046809 7f18090006c0 Delete type=0 #207
2024/02/24-15:54:11.160992 7f0421a006c0 Level-0 table #111: started 2024/05/31-23:25:37.384266 7f18020006c0 Level-0 table #212: started
2024/02/24-15:54:11.161043 7f0421a006c0 Level-0 table #111: 0 bytes OK 2024/05/31-23:25:37.384313 7f18020006c0 Level-0 table #212: 0 bytes OK
2024/02/24-15:54:11.168984 7f0421a006c0 Delete type=0 #109 2024/05/31-23:25:37.390630 7f18020006c0 Delete type=0 #210
2024/02/24-15:54:11.169375 7f0421a006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.403867 7f18020006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.169407 7f0421a006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.403898 7f18020006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/armes/000164.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112 MANIFEST-000213

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.261072 7f0422a006c0 Recovering log #110 2024/06/01-08:52:45.038253 7f28a56006c0 Recovering log #211
2024/02/24-17:02:14.336608 7f0422a006c0 Delete type=3 #108 2024/06/01-08:52:45.049363 7f28a56006c0 Delete type=3 #209
2024/02/24-17:02:14.336726 7f0422a006c0 Delete type=0 #110 2024/06/01-08:52:45.049432 7f28a56006c0 Delete type=0 #211
2024/02/24-17:02:44.653079 7f0421a006c0 Level-0 table #115: started 2024/06/01-09:10:33.725130 7f289f8006c0 Level-0 table #216: started
2024/02/24-17:02:44.653100 7f0421a006c0 Level-0 table #115: 0 bytes OK 2024/06/01-09:10:33.725172 7f289f8006c0 Level-0 table #216: 0 bytes OK
2024/02/24-17:02:44.684887 7f0421a006c0 Delete type=0 #113 2024/06/01-09:10:33.731955 7f289f8006c0 Delete type=0 #214
2024/02/24-17:02:44.722405 7f0421a006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.753233 7f289f8006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.722456 7f0421a006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.753281 7f289f8006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.061930 7f0428e006c0 Recovering log #106 2024/05/31-23:16:45.511332 7f1803e006c0 Recovering log #207
2024/02/24-15:27:21.072272 7f0428e006c0 Delete type=3 #104 2024/05/31-23:16:45.571770 7f1803e006c0 Delete type=3 #205
2024/02/24-15:27:21.072358 7f0428e006c0 Delete type=0 #106 2024/05/31-23:16:45.571914 7f1803e006c0 Delete type=0 #207
2024/02/24-15:54:11.103417 7f0421a006c0 Level-0 table #111: started 2024/05/31-23:25:37.338949 7f18020006c0 Level-0 table #212: started
2024/02/24-15:54:11.103455 7f0421a006c0 Level-0 table #111: 0 bytes OK 2024/05/31-23:25:37.338972 7f18020006c0 Level-0 table #212: 0 bytes OK
2024/02/24-15:54:11.109891 7f0421a006c0 Delete type=0 #109 2024/05/31-23:25:37.345723 7f18020006c0 Delete type=0 #210
2024/02/24-15:54:11.118172 7f0421a006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.358156 7f18020006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.118244 7f0421a006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.358188 7f18020006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/armes/MANIFEST-000213 Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112 MANIFEST-000213

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.147016 7f0422a006c0 Recovering log #110 2024/06/01-08:52:45.010642 7f28a56006c0 Recovering log #211
2024/02/24-17:02:14.207871 7f0422a006c0 Delete type=3 #108 2024/06/01-08:52:45.021246 7f28a56006c0 Delete type=3 #209
2024/02/24-17:02:14.207942 7f0422a006c0 Delete type=0 #110 2024/06/01-08:52:45.021304 7f28a56006c0 Delete type=0 #211
2024/02/24-17:02:44.579150 7f0421a006c0 Level-0 table #115: started 2024/06/01-09:10:33.739501 7f289f8006c0 Level-0 table #216: started
2024/02/24-17:02:44.579252 7f0421a006c0 Level-0 table #115: 0 bytes OK 2024/06/01-09:10:33.739525 7f289f8006c0 Level-0 table #216: 0 bytes OK
2024/02/24-17:02:44.616456 7f0421a006c0 Delete type=0 #113 2024/06/01-09:10:33.745719 7f289f8006c0 Delete type=0 #214
2024/02/24-17:02:44.722366 7f0421a006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.753252 7f289f8006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.722432 7f0421a006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.753274 7f289f8006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.032928 7f0428e006c0 Recovering log #106 2024/05/31-23:16:45.399504 7f1803e006c0 Recovering log #207
2024/02/24-15:27:21.043854 7f0428e006c0 Delete type=3 #104 2024/05/31-23:16:45.453251 7f1803e006c0 Delete type=3 #205
2024/02/24-15:27:21.043981 7f0428e006c0 Delete type=0 #106 2024/05/31-23:16:45.453307 7f1803e006c0 Delete type=0 #207
2024/02/24-15:54:11.088997 7f0421a006c0 Level-0 table #111: started 2024/05/31-23:25:37.324970 7f18020006c0 Level-0 table #212: started
2024/02/24-15:54:11.089081 7f0421a006c0 Level-0 table #111: 0 bytes OK 2024/05/31-23:25:37.324998 7f18020006c0 Level-0 table #212: 0 bytes OK
2024/02/24-15:54:11.096233 7f0421a006c0 Delete type=0 #109 2024/05/31-23:25:37.332256 7f18020006c0 Delete type=0 #210
2024/02/24-15:54:11.118114 7f0421a006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.332486 7f18020006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.118212 7f0421a006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.332520 7f18020006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112 MANIFEST-000213

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.032746 7f0422a006c0 Recovering log #110 2024/06/01-08:52:44.981269 7f28a56006c0 Recovering log #211
2024/02/24-17:02:14.083633 7f0422a006c0 Delete type=3 #108 2024/06/01-08:52:44.991052 7f28a56006c0 Delete type=3 #209
2024/02/24-17:02:14.083731 7f0422a006c0 Delete type=0 #110 2024/06/01-08:52:44.991117 7f28a56006c0 Delete type=0 #211
2024/02/24-17:02:44.458715 7f0421a006c0 Level-0 table #115: started 2024/06/01-09:10:33.708570 7f289f8006c0 Level-0 table #216: started
2024/02/24-17:02:44.458743 7f0421a006c0 Level-0 table #115: 0 bytes OK 2024/06/01-09:10:33.708600 7f289f8006c0 Level-0 table #216: 0 bytes OK
2024/02/24-17:02:44.496165 7f0421a006c0 Delete type=0 #113 2024/06/01-09:10:33.714914 7f289f8006c0 Delete type=0 #214
2024/02/24-17:02:44.578914 7f0421a006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.724977 7f289f8006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.579004 7f0421a006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.725013 7f289f8006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.005371 7f0428e006c0 Recovering log #106 2024/05/31-23:16:45.284662 7f1803e006c0 Recovering log #207
2024/02/24-15:27:21.017229 7f0428e006c0 Delete type=3 #104 2024/05/31-23:16:45.346436 7f1803e006c0 Delete type=3 #205
2024/02/24-15:27:21.017431 7f0428e006c0 Delete type=0 #106 2024/05/31-23:16:45.346487 7f1803e006c0 Delete type=0 #207
2024/02/24-15:54:11.070055 7f0421a006c0 Level-0 table #111: started 2024/05/31-23:25:37.311914 7f18020006c0 Level-0 table #212: started
2024/02/24-15:54:11.070105 7f0421a006c0 Level-0 table #111: 0 bytes OK 2024/05/31-23:25:37.311964 7f18020006c0 Level-0 table #212: 0 bytes OK
2024/02/24-15:54:11.076878 7f0421a006c0 Delete type=0 #109 2024/05/31-23:25:37.318352 7f18020006c0 Delete type=0 #210
2024/02/24-15:54:11.088751 7f0421a006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.324962 7f18020006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.088816 7f0421a006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.332453 7f18020006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/equipement/000164.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112 MANIFEST-000213

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.437580 7f0422a006c0 Recovering log #110 2024/06/01-08:52:45.066668 7f28a56006c0 Recovering log #211
2024/02/24-17:02:14.523339 7f0422a006c0 Delete type=3 #108 2024/06/01-08:52:45.076940 7f28a56006c0 Delete type=3 #209
2024/02/24-17:02:14.523459 7f0422a006c0 Delete type=0 #110 2024/06/01-08:52:45.077005 7f28a56006c0 Delete type=0 #211
2024/02/24-17:02:44.791691 7f0421a006c0 Level-0 table #115: started 2024/06/01-09:10:33.759841 7f289f8006c0 Level-0 table #216: started
2024/02/24-17:02:44.791718 7f0421a006c0 Level-0 table #115: 0 bytes OK 2024/06/01-09:10:33.759880 7f289f8006c0 Level-0 table #216: 0 bytes OK
2024/02/24-17:02:44.828354 7f0421a006c0 Delete type=0 #113 2024/06/01-09:10:33.766395 7f289f8006c0 Delete type=0 #214
2024/02/24-17:02:44.865482 7f0421a006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.780130 7f289f8006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.865534 7f0421a006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.780228 7f289f8006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.088831 7f0428e006c0 Recovering log #106 2024/05/31-23:16:45.631063 7f1803e006c0 Recovering log #207
2024/02/24-15:27:21.099682 7f0428e006c0 Delete type=3 #104 2024/05/31-23:16:45.684522 7f1803e006c0 Delete type=3 #205
2024/02/24-15:27:21.099779 7f0428e006c0 Delete type=0 #106 2024/05/31-23:16:45.684659 7f1803e006c0 Delete type=0 #207
2024/02/24-15:54:11.125392 7f0421a006c0 Level-0 table #111: started 2024/05/31-23:25:37.351886 7f18020006c0 Level-0 table #212: started
2024/02/24-15:54:11.125461 7f0421a006c0 Level-0 table #111: 0 bytes OK 2024/05/31-23:25:37.351907 7f18020006c0 Level-0 table #212: 0 bytes OK
2024/02/24-15:54:11.132402 7f0421a006c0 Delete type=0 #109 2024/05/31-23:25:37.358042 7f18020006c0 Delete type=0 #210
2024/02/24-15:54:11.146985 7f0421a006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.358174 7f18020006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.147070 7f0421a006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.358195 7f18020006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112 MANIFEST-000213

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.210347 7f04234006c0 Recovering log #110 2024/06/01-08:52:45.024483 7f28a4c006c0 Recovering log #211
2024/02/24-17:02:14.257923 7f04234006c0 Delete type=3 #108 2024/06/01-08:52:45.034690 7f28a4c006c0 Delete type=3 #209
2024/02/24-17:02:14.257978 7f04234006c0 Delete type=0 #110 2024/06/01-08:52:45.034811 7f28a4c006c0 Delete type=0 #211
2024/02/24-17:02:44.616568 7f0421a006c0 Level-0 table #115: started 2024/06/01-09:10:33.745840 7f289f8006c0 Level-0 table #216: started
2024/02/24-17:02:44.616772 7f0421a006c0 Level-0 table #115: 0 bytes OK 2024/06/01-09:10:33.745862 7f289f8006c0 Level-0 table #216: 0 bytes OK
2024/02/24-17:02:44.652984 7f0421a006c0 Delete type=0 #113 2024/06/01-09:10:33.753113 7f289f8006c0 Delete type=0 #214
2024/02/24-17:02:44.722386 7f0421a006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.753288 7f289f8006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.722444 7f0421a006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.753311 7f289f8006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.047067 7f0422a006c0 Recovering log #106 2024/05/31-23:16:45.455012 7f18090006c0 Recovering log #207
2024/02/24-15:27:21.058242 7f0422a006c0 Delete type=3 #104 2024/05/31-23:16:45.509581 7f18090006c0 Delete type=3 #205
2024/02/24-15:27:21.058369 7f0422a006c0 Delete type=0 #106 2024/05/31-23:16:45.509640 7f18090006c0 Delete type=0 #207
2024/02/24-15:54:11.096381 7f0421a006c0 Level-0 table #111: started 2024/05/31-23:25:37.332626 7f18020006c0 Level-0 table #212: started
2024/02/24-15:54:11.096419 7f0421a006c0 Level-0 table #111: 0 bytes OK 2024/05/31-23:25:37.332674 7f18020006c0 Level-0 table #212: 0 bytes OK
2024/02/24-15:54:11.103263 7f0421a006c0 Delete type=0 #109 2024/05/31-23:25:37.338836 7f18020006c0 Delete type=0 #210
2024/02/24-15:54:11.118151 7f0421a006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.358145 7f18020006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.118228 7f0421a006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.358181 7f18020006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/mutations/000074.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000022 MANIFEST-000123

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.085660 7f04234006c0 Recovering log #20 2024/06/01-08:52:44.995929 7f28a4c006c0 Recovering log #121
2024/02/24-17:02:14.143480 7f04234006c0 Delete type=3 #18 2024/06/01-08:52:45.006711 7f28a4c006c0 Delete type=3 #119
2024/02/24-17:02:14.143544 7f04234006c0 Delete type=0 #20 2024/06/01-08:52:45.006811 7f28a4c006c0 Delete type=0 #121
2024/02/24-17:02:44.549664 7f0421a006c0 Level-0 table #25: started 2024/06/01-09:10:33.732066 7f289f8006c0 Level-0 table #126: started
2024/02/24-17:02:44.549704 7f0421a006c0 Level-0 table #25: 0 bytes OK 2024/06/01-09:10:33.732091 7f289f8006c0 Level-0 table #126: 0 bytes OK
2024/02/24-17:02:44.578703 7f0421a006c0 Delete type=0 #23 2024/06/01-09:10:33.739395 7f289f8006c0 Delete type=0 #124
2024/02/24-17:02:44.578982 7f0421a006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.753244 7f289f8006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.579068 7f0421a006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.753267 7f289f8006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,8 @@
2024/02/24-15:27:21.020239 7f0422a006c0 Recovering log #16 2024/05/31-23:16:45.348077 7f18090006c0 Recovering log #117
2024/02/24-15:27:21.030468 7f0422a006c0 Delete type=3 #14 2024/05/31-23:16:45.396965 7f18090006c0 Delete type=3 #115
2024/02/24-15:27:21.030604 7f0422a006c0 Delete type=0 #16 2024/05/31-23:16:45.397017 7f18090006c0 Delete type=0 #117
2024/02/24-15:54:11.077049 7f0421a006c0 Level-0 table #21: started 2024/05/31-23:25:37.318478 7f18020006c0 Level-0 table #122: started
2024/02/24-15:54:11.082085 7f0421a006c0 Level-0 table #21: 56385 bytes OK 2024/05/31-23:25:37.318502 7f18020006c0 Level-0 table #122: 0 bytes OK
2024/02/24-15:54:11.088423 7f0421a006c0 Delete type=0 #19 2024/05/31-23:25:37.324829 7f18020006c0 Delete type=0 #120
2024/02/24-15:54:11.088774 7f0421a006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.332435 7f18020006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/05/31-23:25:37.332503 7f18020006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/profils/000164.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112 MANIFEST-000213

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.526210 7f04234006c0 Recovering log #110 2024/06/01-08:52:45.081166 7f28a4c006c0 Recovering log #211
2024/02/24-17:02:14.575335 7f04234006c0 Delete type=3 #108 2024/06/01-08:52:45.092578 7f28a4c006c0 Delete type=3 #209
2024/02/24-17:02:14.575449 7f04234006c0 Delete type=0 #110 2024/06/01-08:52:45.092718 7f28a4c006c0 Delete type=0 #211
2024/02/24-17:02:44.828537 7f0421a006c0 Level-0 table #115: started 2024/06/01-09:10:33.753373 7f289f8006c0 Level-0 table #216: started
2024/02/24-17:02:44.828579 7f0421a006c0 Level-0 table #115: 0 bytes OK 2024/06/01-09:10:33.753450 7f289f8006c0 Level-0 table #216: 0 bytes OK
2024/02/24-17:02:44.865276 7f0421a006c0 Delete type=0 #113 2024/06/01-09:10:33.759664 7f289f8006c0 Delete type=0 #214
2024/02/24-17:02:44.865499 7f0421a006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.780095 7f289f8006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.865526 7f0421a006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.780182 7f289f8006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.104005 7f0422a006c0 Recovering log #106 2024/05/31-23:16:45.686951 7f18090006c0 Recovering log #207
2024/02/24-15:27:21.114826 7f0422a006c0 Delete type=3 #104 2024/05/31-23:16:45.748560 7f18090006c0 Delete type=3 #205
2024/02/24-15:27:21.114958 7f0422a006c0 Delete type=0 #106 2024/05/31-23:16:45.748697 7f18090006c0 Delete type=0 #207
2024/02/24-15:54:11.118395 7f0421a006c0 Level-0 table #111: started 2024/05/31-23:25:37.358272 7f18020006c0 Level-0 table #212: started
2024/02/24-15:54:11.118462 7f0421a006c0 Level-0 table #111: 0 bytes OK 2024/05/31-23:25:37.358380 7f18020006c0 Level-0 table #212: 0 bytes OK
2024/02/24-15:54:11.125114 7f0421a006c0 Delete type=0 #109 2024/05/31-23:25:37.364928 7f18020006c0 Delete type=0 #210
2024/02/24-15:54:11.146962 7f0421a006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.384137 7f18020006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.147039 7f0421a006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.384177 7f18020006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112 MANIFEST-000213

View File

@ -1,8 +1,8 @@
2024/02/24-17:02:14.339214 7f04234006c0 Recovering log #110 2024/06/01-08:52:45.052999 7f28a4c006c0 Recovering log #211
2024/02/24-17:02:14.435163 7f04234006c0 Delete type=3 #108 2024/06/01-08:52:45.063160 7f28a4c006c0 Delete type=3 #209
2024/02/24-17:02:14.435306 7f04234006c0 Delete type=0 #110 2024/06/01-08:52:45.063223 7f28a4c006c0 Delete type=0 #211
2024/02/24-17:02:44.685074 7f0421a006c0 Level-0 table #115: started 2024/06/01-09:10:33.766646 7f289f8006c0 Level-0 table #216: started
2024/02/24-17:02:44.685104 7f0421a006c0 Level-0 table #115: 0 bytes OK 2024/06/01-09:10:33.766703 7f289f8006c0 Level-0 table #216: 0 bytes OK
2024/02/24-17:02:44.722233 7f0421a006c0 Delete type=0 #113 2024/06/01-09:10:33.773730 7f289f8006c0 Delete type=0 #214
2024/02/24-17:02:44.722419 7f0421a006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.780150 7f289f8006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/02/24-17:02:44.722468 7f0421a006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.780197 7f289f8006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/02/24-15:27:21.075001 7f0422a006c0 Recovering log #106 2024/05/31-23:16:45.574393 7f18090006c0 Recovering log #207
2024/02/24-15:27:21.085800 7f0422a006c0 Delete type=3 #104 2024/05/31-23:16:45.628695 7f18090006c0 Delete type=3 #205
2024/02/24-15:27:21.085899 7f0422a006c0 Delete type=0 #106 2024/05/31-23:16:45.628831 7f18090006c0 Delete type=0 #207
2024/02/24-15:54:11.110073 7f0421a006c0 Level-0 table #111: started 2024/05/31-23:25:37.345824 7f18020006c0 Level-0 table #212: started
2024/02/24-15:54:11.110113 7f0421a006c0 Level-0 table #111: 0 bytes OK 2024/05/31-23:25:37.345846 7f18020006c0 Level-0 table #212: 0 bytes OK
2024/02/24-15:54:11.117605 7f0421a006c0 Delete type=0 #109 2024/05/31-23:25:37.351766 7f18020006c0 Delete type=0 #210
2024/02/24-15:54:11.118195 7f0421a006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.358165 7f18020006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/02/24-15:54:11.118259 7f0421a006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.358202 7f18020006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

BIN
packs/scenes/000024.ldb Normal file

Binary file not shown.

1
packs/scenes/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000049

8
packs/scenes/LOG Normal file
View File

@ -0,0 +1,8 @@
2024/06/01-08:52:45.179473 7f28a4c006c0 Recovering log #47
2024/06/01-08:52:45.189293 7f28a4c006c0 Delete type=3 #45
2024/06/01-08:52:45.189391 7f28a4c006c0 Delete type=0 #47
2024/06/01-09:10:33.793989 7f289f8006c0 Level-0 table #52: started
2024/06/01-09:10:33.794013 7f289f8006c0 Level-0 table #52: 0 bytes OK
2024/06/01-09:10:33.800365 7f289f8006c0 Delete type=0 #50
2024/06/01-09:10:33.808253 7f289f8006c0 Manual compaction at level-0 from '!scenes!CXx90Qk7nXEd2uTh' @ 72057594037927935 : 1 .. '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 0 : 0; will stop at (end)
2024/06/01-09:10:33.808287 7f289f8006c0 Manual compaction at level-1 from '!scenes!CXx90Qk7nXEd2uTh' @ 72057594037927935 : 1 .. '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2024/05/31-23:16:45.930564 7f18090006c0 Recovering log #43
2024/05/31-23:16:45.989362 7f18090006c0 Delete type=3 #41
2024/05/31-23:16:45.989419 7f18090006c0 Delete type=0 #43
2024/05/31-23:25:37.390761 7f18020006c0 Level-0 table #48: started
2024/05/31-23:25:37.390789 7f18020006c0 Level-0 table #48: 0 bytes OK
2024/05/31-23:25:37.397622 7f18020006c0 Delete type=0 #46
2024/05/31-23:25:37.403881 7f18020006c0 Manual compaction at level-0 from '!scenes!CXx90Qk7nXEd2uTh' @ 72057594037927935 : 1 .. '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 0 : 0; will stop at (end)
2024/05/31-23:25:37.403914 7f18020006c0 Manual compaction at level-1 from '!scenes!CXx90Qk7nXEd2uTh' @ 72057594037927935 : 1 .. '!scenes.tokens.delta.items!j6RYn1X7KfhTioX5.FPPNsxboEnoqyAoh.JxMmMrhEE67GWHQD.t9lh152OxZDg41sm' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000112 MANIFEST-000212

View File

@ -1,7 +1,7 @@
2024/02/24-17:02:14.698353 7f0422a006c0 Recovering log #110 2024/06/01-08:52:45.165393 7f28a56006c0 Recovering log #210
2024/02/24-17:02:14.751354 7f0422a006c0 Delete type=3 #108 2024/06/01-08:52:45.176172 7f28a56006c0 Delete type=3 #208
2024/02/24-17:02:14.751472 7f0422a006c0 Delete type=0 #110 2024/06/01-08:52:45.176343 7f28a56006c0 Delete type=0 #210
2024/02/24-17:02:44.865788 7f0421a006c0 Level-0 table #115: started 2024/06/01-09:10:33.780315 7f289f8006c0 Level-0 table #215: started
2024/02/24-17:02:44.865841 7f0421a006c0 Level-0 table #115: 0 bytes OK 2024/06/01-09:10:33.780380 7f289f8006c0 Level-0 table #215: 0 bytes OK
2024/02/24-17:02:44.903145 7f0421a006c0 Delete type=0 #113 2024/06/01-09:10:33.787374 7f289f8006c0 Delete type=0 #213
2024/02/24-17:02:44.991021 7f0421a006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2024/06/01-09:10:33.808232 7f289f8006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2024/02/24-15:27:21.147525 7f0428e006c0 Recovering log #106 2024/05/31-23:16:45.866029 7f1803e006c0 Recovering log #206
2024/02/24-15:27:21.158940 7f0428e006c0 Delete type=3 #104 2024/05/31-23:16:45.927421 7f1803e006c0 Delete type=3 #204
2024/02/24-15:27:21.159095 7f0428e006c0 Delete type=0 #106 2024/05/31-23:16:45.927530 7f1803e006c0 Delete type=0 #206
2024/02/24-15:54:11.147250 7f0421a006c0 Level-0 table #111: started 2024/05/31-23:25:37.371152 7f18020006c0 Level-0 table #211: started
2024/02/24-15:54:11.147304 7f0421a006c0 Level-0 table #111: 0 bytes OK 2024/05/31-23:25:37.371175 7f18020006c0 Level-0 table #211: 0 bytes OK
2024/02/24-15:54:11.154258 7f0421a006c0 Delete type=0 #109 2024/05/31-23:25:37.377827 7f18020006c0 Delete type=0 #209
2024/02/24-15:54:11.169343 7f0421a006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2024/05/31-23:25:37.384161 7f18020006c0 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