Compare commits

...

25 Commits

Author SHA1 Message Date
1051349dd0 Correction sur usage BA sur un jet impair au D20 2025-06-24 21:04:58 +02:00
a245b0e87c Corrections sur couleur des pages dans les journaux 2025-06-03 13:32:11 +02:00
c9ce3367ed Corrections sur couleur des pages dans les journaux 2025-06-03 13:31:17 +02:00
e95e068112 Fix perte de combatitivité sur action d'un joueur 2025-06-03 09:37:50 +02:00
6dd63a2c54 Hawkmoon : Foundry v13 migration 2025-04-30 23:26:24 +02:00
650e4b7449 Hawkmoon : Foundry v13 migration 2025-04-30 23:24:55 +02:00
3f27482ad9 Hawkmoon : Foundry v13 migraton 2025-04-30 23:23:32 +02:00
436b282ff5 Correction sur se désengager 2025-03-28 18:09:36 +01:00
39f8cfdbcc Correction sur 2 attaques avec ambidextrie 2025-03-28 14:56:52 +01:00
24a57a906e Fix protection pour creatures 2025-02-07 20:43:03 +01:00
667f3678fb Fix protection pour creatures 2025-02-07 20:42:14 +01:00
d5dd9e5bf7 Cleanup welcome scene 2024-08-23 13:49:57 +02:00
3403b72d1f ajout item sur cellule + augmentation bonus et difficultés 2024-08-22 14:39:42 +02:00
8a4487c833 ajout item sur cellule + augmentation bonus et difficultés 2024-08-22 14:39:30 +02:00
4eece5aaf4 Correction sur carte europe 2024-06-18 17:26:55 +02:00
b574ba76ef Fix combativite 2024-06-01 09:17:57 +02:00
0b9e1a80af Fix talents + artefacts 2024-05-31 23:25:43 +02:00
6505b1c969 Fix talents + artefacts 2024-05-31 23:16:28 +02:00
280e90d7a6 Fix initiative 2024-05-31 14:03:36 +02:00
4fa9a911a0 Ameliorations creatures 2024-05-30 08:30:29 +02:00
b8c61f8f12 Fix sheets 2024-05-24 08:25:25 +02:00
b47b14a4b1 Fix sheets 2024-05-24 08:24:40 +02:00
9391acf6ee Add v12 support 2024-05-23 11:33:02 +02:00
8af9c582bf Preparation du passage en v12 2024-05-05 18:06:29 +02:00
fac158e0ad Fix v11/v12 2024-05-02 09:27:16 +02:00
133 changed files with 1027 additions and 684 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -7,12 +7,12 @@ import { HawkmoonUtility } from "./hawkmoon-utility.js";
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
/* -------------------------------------------- */
export class HawkmoonActorSheet extends ActorSheet {
export class HawkmoonActorSheet extends foundry.appv1.sheets.ActorSheet {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-hawkmoon-cyd", "sheet", "actor"],
template: "systems/fvtt-hawkmoon-cyd/templates/actor-sheet.html",
width: 640,
@ -25,7 +25,7 @@ export class HawkmoonActorSheet extends ActorSheet {
/* -------------------------------------------- */
async getData() {
const objectData = duplicate(this.object)
const objectData = foundry.utils.duplicate(this.object)
let formData = {
title: this.title,
@ -39,29 +39,30 @@ export class HawkmoonActorSheet extends ActorSheet {
effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
limited: this.object.limited,
skills: this.actor.getSkills(),
armes: duplicate(this.actor.getWeapons()),
monnaies: duplicate(this.actor.getMonnaies()),
protections: duplicate(this.actor.getArmors()),
historiques: duplicate(this.actor.getHistoriques() || []),
talents: duplicate(this.actor.getTalents() || []),
mutations: duplicate(this.actor.getMutations() || []),
armes: foundry.utils.duplicate(this.actor.getWeapons()),
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
protections: foundry.utils.duplicate(this.actor.getArmors()),
historiques: foundry.utils.duplicate(this.actor.getHistoriques() || []),
talents: foundry.utils.duplicate(this.actor.getTalents() || []),
mutations: foundry.utils.duplicate(this.actor.getMutations() || []),
talentsCell: this.getCelluleTalents(),
profils: duplicate(this.actor.getProfils() || []),
profils: foundry.utils.duplicate(this.actor.getProfils() || []),
combat: this.actor.getCombatValues(),
equipements: duplicate(this.actor.getEquipments()),
artefacts: duplicate(this.actor.getArtefacts()),
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
artefacts: foundry.utils.duplicate(this.actor.getArtefacts()),
richesse: this.actor.computeRichesse(),
coupDevastateur: this.actor.items.find(it => it.type =="talent" && it.name.toLowerCase() == "coup devastateur" && !it.system.used),
valeurEquipement: this.actor.computeValeurEquipement(),
nbCombativite: this.actor.system.sante.nbcombativite,
combativiteList: HawkmoonUtility.getCombativiteList(this.actor.system.sante.nbcombativite),
initiative: this.actor.getFlag("world", "last-initiative") || -1,
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
habitat: await TextEditor.enrichHTML(this.object.system.biodata.habitat, {async: true}),
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, {async: true}),
habitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.habitat, {async: true}),
options: this.options,
owner: this.document.isOwner,
editScore: this.options.editScore,
isGM: game.user.isGM
isGM: game.user.isGM,
config: game.system.hawkmoon.config
}
this.formData = formData;
@ -147,8 +148,8 @@ export class HawkmoonActorSheet extends ActorSheet {
this.actor.rollArmeOffensif(armeId)
})
html.find('.roll-assomer').click((event) => {
this.actor.rollAssomer()
html.find('.roll-assommer').click((event) => {
this.actor.rollAssommer()
})
html.find('.roll-coup-bas').click((event) => {
this.actor.rollCoupBas()

View File

@ -67,22 +67,26 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */
prepareArme(arme) {
arme = duplicate(arme)
if (this.type == "cellule") {
return arme
}
arme = foundry.utils.duplicate(arme)
let combat = this.getCombatValues()
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
let bonusDefense = this.getBonusDefenseFromTalents()
arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "mêlée"))
arme.system.attrKey = "pui"
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + (this.system.combat.monte ? 3 : 0 )
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.seuildefense + bonusDefense + (this.system.combat.monte ? 3 : 0 )
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + (this.system.combat.monte ? 3 : 0)
arme.system.totalDefensif = combat.defenseTotal + arme.system.competence.system.niveau + arme.system.seuildefense + bonusDefense + (this.system.combat.monte ? 3 : 0)
console.log("Arme", arme.system.totalDefensif, combat, arme.system.competence.system.niveau, arme.system.seuildefense, bonusDefense)
arme.system.isdefense = true
arme.system.isMelee = true
arme.system.isDistance = false
}
if (arme.system.typearme == "jet" || arme.system.typearme == "tir") {
arme.system.competence = duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
arme.system.competence = foundry.utils.duplicate(this.items.find(item => item.type == "competence" && item.name.toLowerCase() == "armes à distance"))
arme.system.attrKey = "adr"
arme.system.totalOffensif = this.system.attributs.adr.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff
arme.system.totalDegats = arme.system.degats
@ -146,7 +150,7 @@ export class HawkmoonActor extends Actor {
getSkills() {
let comp = []
for (let item of this.items) {
item = duplicate(item)
item = foundry.utils.duplicate(item)
if (item.type == "competence") {
item.system.attribut1total = item.system.niveau + (this.system.attributs[item.system.attribut1]?.value || 0)
item.system.attribut2total = item.system.niveau + (this.system.attributs[item.system.attribut2]?.value || 0)
@ -168,7 +172,7 @@ export class HawkmoonActor extends Actor {
/* ----------------------- --------------------- */
addMember(actorId) {
let members = duplicate(this.system.members)
let members = foundry.utils.duplicate(this.system.members)
members.push({ id: actorId })
this.update({ 'system.members': members })
}
@ -202,6 +206,20 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */
getCombatValues() {
if (this.type == "cellule") {
return {
initBase: 0,
initTotal: 0,
bonusDegats: 0,
bonusDegatsTotal: 0,
vitesseBase: 0,
vitesseTotal: 0,
defenseBase: 0,
protection: 0,
defenseTotal: 0
}
}
let combat = {
initBase: this.system.attributs.adr.value,
initTotal: this.system.attributs.adr.value + this.system.combat.initbonus,
@ -235,21 +253,28 @@ export class HawkmoonActor extends Actor {
this.update({ 'system.sante.vigueur': vigueur })
}
}
super.prepareDerivedData()
}
/* -------------------------------------------- */
_preUpdate(changed, options, user) {
if (changed?.system?.sante?.etat && changed?.system?.sante?.etat != this.system.sante.etat) {
setTimeout(() => {
this.processCombativite(changed.system.sante)
}, 800)
}
super._preUpdate(changed, options, user);
}
/* -------------------------------------------- */
_onUpdate(data, options, user) {
super._onUpdate(data, options, user);
}
/* -------------------------------------------- */
getItemById(id) {
let item = this.items.find(item => item.id == id);
if (item) {
item = duplicate(item)
item = foundry.utils.duplicate(item)
}
return item;
}
@ -282,7 +307,7 @@ export class HawkmoonActor extends Actor {
checkAttribut(attribut, minLevel) {
let attr = this.system.attributs.find(at => at.labelnorm == attribut.toLowerCase())
if (attr && attr.value >= minLevel) {
return { isValid: true, attr: duplicate(attr) }
return { isValid: true, attr: foundry.utils.duplicate(attr) }
}
return { isValid: false }
}
@ -290,11 +315,11 @@ export class HawkmoonActor extends Actor {
checkAttributOrCompetenceLevel(compName, minLevel) {
let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase() && i.system.niveau >= minLevel)
if (comp) {
return { isValid: true, item: duplicate(comp) }
return { isValid: true, item: foundry.utils.duplicate(comp) }
} else {
for (let attrKey in this.system.attributs) {
if (this.system.attributs[attrKey].label.toLowerCase() == compName.toLowerCase() && this.system.attributs[attrKey].value >= minLevel) {
return { isValid: true, item: duplicate(this.system.attributs[attrKey]) }
return { isValid: true, item: foundry.utils.duplicate(this.system.attributs[attrKey]) }
}
}
}
@ -304,7 +329,7 @@ export class HawkmoonActor extends Actor {
addCompetenceBonus(compName, bonus, baCost) {
let comp = this.items.find(i => i.type == "competence" && i.name.toLowerCase() == compName.toLowerCase())
if (comp) {
comp = duplicate(comp)
comp = foundry.utils.duplicate(comp)
comp.system.bonus = bonus
comp.system.baCost = baCost
return { isValid: true, item: comp }
@ -388,22 +413,28 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */
changeEtatCombativite(value) {
if ( value === "vaincu") {
if (value === "vaincu") {
value = 200
}
let sante = duplicate(this.system.sante)
let sante = foundry.utils.duplicate(this.system.sante)
sante.etat += Number(value)
sante.etat = Math.max(sante.etat, 0)
sante.etat = Math.min(sante.etat, 5)
sante.etat = Math.min(sante.etat, this.system.sante.nbcombativite)
this.update({ 'system.sante': sante })
if (sante.etat == this.system.sante.nbcombativite) {
ChatMessage.create({ content: `<strong>${this.name} est vaincu !</strong>` })
}
this.processCombativite(sante)
}
/* -------------------------------------------- */
processCombativite(sante) {
sante = sante || foundry.utils.duplicate(this.system.sante)
// Gestion des états affaibli et très affaibli
if (sante.etat == this.system.sante.nbcombativite-2 || sante.etat == this.system.sante.nbcombativite-1) {
if (sante.etat == this.system.sante.nbcombativite-2 && this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "encaissement")) {
if (sante.etat == this.system.sante.nbcombativite - 2 || sante.etat == this.system.sante.nbcombativite - 1) {
if (sante.etat == this.system.sante.nbcombativite - 2 && this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "encaissement")) {
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge grâce à Encaissement. Pensez à les ajouter à la fin de la scène !</strong>` })
} else if (sante.etat == this.system.sante.nbcombativite-1 && this.items.find(item => item.type == "talent" && item.name.toLowerCase().includes("vaillant"))) {
} else if (sante.etat == this.system.sante.nbcombativite - 1 && this.items.find(item => item.type == "talent" && item.name.toLowerCase().includes("vaillant"))) {
ChatMessage.create({ content: `<strong>${this.name} ne subit pas les 2 adversités rouge grâce à Vaillant. Pensez à les ajouter à la fin de la scène !</strong>` })
} else {
ChatMessage.create({ content: `<strong>${this.name} subit 2 adversités rouge !</strong>` })
@ -425,13 +456,13 @@ export class HawkmoonActor extends Actor {
getSubActors() {
let subActors = [];
for (let id of this.system.subactors) {
subActors.push(duplicate(game.actors.get(id)));
subActors.push(foundry.utils.duplicate(game.actors.get(id)));
}
return subActors;
}
/* -------------------------------------------- */
async addSubActor(subActorId) {
let subActors = duplicate(this.system.subactors);
let subActors = foundry.utils.duplicate(this.system.subactors);
subActors.push(subActorId);
await this.update({ 'system.subactors': subActors });
}
@ -453,9 +484,10 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */
async incDecAdversite(adv, incDec = 0) {
let adversite = duplicate(this.system.adversite)
let adversite = foundry.utils.duplicate(this.system.adversite)
adversite[adv] += Number(incDec)
adversite[adv] = Math.max(adversite[adv], 0)
adversite[adv] = Math.min(adversite[adv], 20)
this.update({ 'system.adversite': adversite })
}
/* -------------------------------------------- */
@ -500,7 +532,7 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */
async setPredilectionUsed(compId, predIdx) {
let comp = this.items.get(compId)
let pred = duplicate(comp.system.predilections)
let pred = foundry.utils.duplicate(comp.system.predilections)
pred[predIdx].used = true
await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
}
@ -511,6 +543,23 @@ export class HawkmoonActor extends Actor {
return init || -1
}
/* -------------------------------------------- */
getBestAttackValue() {
let attackList = this.items.filter(item => (item.type == "arme" || item.type == "talent") && item.system.equipped)
let maxOff = 0
let bestArme
for (let arme of attackList) {
if (arme.type == "arme") {
arme = this.prepareArme(arme)
}
if (arme.system.totalOffensif > maxOff) {
maxOff = arme.system.totalOffensif
bestArme = foundry.utils.duplicate(arme)
}
}
return bestArme
}
/* -------------------------------------------- */
getBestDefenseValue() {
let defenseList = this.items.filter(item => (item.type == "arme") && item.system.equipped)
@ -522,7 +571,7 @@ export class HawkmoonActor extends Actor {
}
if (arme.system.totalDefensif > maxDef) {
maxDef = arme.system.totalDefensif
bestArme = duplicate(arme)
bestArme = foundry.utils.duplicate(arme)
}
}
return bestArme
@ -537,7 +586,7 @@ export class HawkmoonActor extends Actor {
for (let auto of talent.system.automations) {
if (auto.eventtype === "prepare-roll") {
if (auto.competence.toLowerCase() == competence.name.toLowerCase()) {
talent = duplicate(talent)
talent = foundry.utils.duplicate(talent)
talent.system.bonus = auto.bonus
talent.system.baCost = auto.baCost
talents.push(talent)
@ -569,26 +618,33 @@ export class HawkmoonActor extends Actor {
rollData.nbAdversites = this.getTotalAdversite()
rollData.talents = []
rollData.attrKey2 = "none"
rollData.coupDevastateur = this.items.find(it => it.type =="talent" && it.name.toLowerCase() == "coup dévastateur" && !it.system.used)
rollData.coupDevastateur = this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "coup dévastateur" && !it.system.used)
rollData.hasAmbidextre = this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "ambidextre")
rollData.hasFeinte = this.system.bonneaventure.actuelle >0 && this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "feinte")
rollData.hasFeinte = this.system.bonneaventure.actuelle > 0 && this.items.find(it => it.type == "talent" && it.name.toLowerCase() == "feinte")
rollData.isMonte = this.system.combat.monte
rollData.config = game.system.hawkmoon.config
if (attrKey) {
rollData.attrKey = attrKey
if (attrKey != "tochoose") {
rollData.actionImg = "systems/fvtt-hawkmoon-cyd/assets/icons/" + this.system.attributs[attrKey].labelnorm + ".webp"
rollData.attr = duplicate(this.system.attributs[attrKey])
rollData.attr = foundry.utils.duplicate(this.system.attributs[attrKey])
}
}
if (compId) {
rollData.competence = duplicate(this.items.get(compId) || {})
rollData.maitrises = rollData.competence.system.predilections.filter(p => p.maitrise)
rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
let maitrises = [{ key: "none", label: "Aucune" }]
rollData.competence.system.predilections.forEach(function (item) {
if (item.maitrise) {
maitrises.push({ key: item.id, label: item.name });
}
})
rollData.maitrises = maitrises // rollData.competence.system.predilections.filter(p => p.maitrise)
rollData.actionImg = rollData.competence?.img
rollData.talents = this.searchRelevantTalents(rollData.competence)
}
if (compName) {
rollData.competence = duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {})
rollData.competence = foundry.utils.duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {})
rollData.actionImg = rollData.competence?.img
}
return rollData
@ -626,7 +682,7 @@ export class HawkmoonActor extends Actor {
rollDialog.render(true)
}
/* -------------------------------------------- */
async rollAssomer() {
async rollAssommer() {
let rollData = this.getCommonRollData("pui", undefined, "Filouterie")
rollData.assomer = true
rollData.conditionsCommunes = true
@ -697,7 +753,7 @@ export class HawkmoonActor extends Actor {
if (rollDataInput?.chargeCavalerie) {
bonus = 6
}
roll = new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll({ async: false })
roll = await new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll()
} else {
if (rollDataInput?.attaqueCharge) {
bonus = 3
@ -705,7 +761,7 @@ export class HawkmoonActor extends Actor {
if (rollDataInput?.chargeCavalerie) {
bonus = 4
}
roll = new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll({ async: false })
roll = await new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll()
}
await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"));
let nbEtatPerdus = 0

View File

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

View File

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

View File

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

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

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

View File

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

View File

@ -22,7 +22,7 @@ export class HawkmoonTokenHud {
const hudData = { actor: actor }
const controlIconActions = html.find('.control-icon[data-action=combat]');
const controlIconActions = $(html).find('.control-icon[data-action=combat]');
// initiative
await HawkmoonTokenHud._configureSubMenu(controlIconActions, 'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html', hudData,
(event) => {
@ -34,7 +34,7 @@ export class HawkmoonTokenHud {
/* -------------------------------------------- */
static async addTokenHudExtensions(app, html, tokenId) {
const controlIconCombat = html.find('.control-icon[data-action=combat]')
const controlIconCombat = $(html).find('.control-icon[data-action=combat]')
if (controlIconCombat.length>0 ) {
HawkmoonTokenHud.addExtensionHud(app, html, tokenId);
}
@ -42,7 +42,7 @@ export class HawkmoonTokenHud {
/* -------------------------------------------- */
static async _configureSubMenu(insertionPoint, template, hudData, onMenuItem) {
const hud = $(await renderTemplate(template, hudData))
const hud = $(await foundry.applications.handlebars.renderTemplate(template, hudData))
const list = hud.find('div.hawkmoon-hud-list')
HawkmoonTokenHud._toggleHudListActive(hud, list);

View File

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

View File

@ -18,6 +18,7 @@ import { HawkmoonCombat } from "./hawkmoon-combat.js";
import { HawkmoonItem } from "./hawkmoon-item.js";
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
import { HawkmoonTokenHud } from "./hawkmoon-hud.js";
import { HAWKMOON_CONFIG } from "./hawkmoon-config.js";
/* -------------------------------------------- */
/* Foundry VTT Initialization */
@ -50,18 +51,19 @@ Hooks.once("init", async function () {
CONFIG.Item.documentClass = HawkmoonItem
game.system.hawkmoon = {
HawkmoonUtility,
HawkmoonAutomation
HawkmoonAutomation,
config : HAWKMOON_CONFIG
}
/* -------------------------------------------- */
// Register sheet application classes
Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonActorSheet, { types: ["personnage"], makeDefault: true })
Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCreatureSheet, { types: ["creature"], makeDefault: true })
Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCelluleSheet, { types: ["cellule"], makeDefault: true });
// Regster sheet application classes
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonActorSheet, { types: ["personnage"], makeDefault: true })
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCreatureSheet, { types: ["creature"], makeDefault: true })
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCelluleSheet, { types: ["cellule"], makeDefault: true });
Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("fvtt-hawkmoon-cyd", HawkmoonItemSheet, { makeDefault: true })
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", HawkmoonItemSheet, { makeDefault: true })
HawkmoonUtility.init()
HawkmoonAutomation.init()
@ -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 */
/* -------------------------------------------- */
@ -105,6 +120,7 @@ Hooks.once("ready", function () {
console.log("No stats available, giving up.")
)
importDefaultScene()
welcomeMessage()
});
@ -122,4 +138,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
}
return true;
});

View File

@ -6,7 +6,7 @@ export class HawkmoonRollDialog extends Dialog {
static async create(actor, rollData ) {
let options = { classes: ["HawkmoonDialog"], width: 320, height: 'fit-content', 'z-index': 99999 };
let html = await renderTemplate('systems/fvtt-hawkmoon-cyd/templates/roll-dialog-generic.html', rollData);
let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-hawkmoon-cyd/templates/roll-dialog-generic.html', rollData);
return new HawkmoonRollDialog(actor, rollData, html, options );
}
@ -60,7 +60,8 @@ export class HawkmoonRollDialog extends Dialog {
html.find('#modificateur').change(async (event) => {
this.rollData.modificateur = Number(event.currentTarget.value)
})
html.find('#difficulte').change(async (event) => {
html.find('#difficulte').change( (event) => {
console.log("Difficulte: " + event.currentTarget.value)
this.rollData.difficulte = Number(event.currentTarget.value)
})
html.find('#attrKey').change(async (event) => {

View File

@ -3,10 +3,10 @@ import { HawkmoonCombat } from "./hawkmoon-combat.js";
import { HawkmoonCommands } from "./hawkmoon-commands.js";
/* -------------------------------------------- */
const __distanceDifficulte = { "porteecourte": 5, "porteemoyenne": 9, "porteelongue": 14}
const __tireurDeplacement = { immobile: 0, lent: 3, rapide: 5}
const __cibleCouvert = { aucun: 0, leger: 5, complet: 10}
const __tailleCible = { normal: 0, main: 10, enfant: 3, maison: -10}
const __distanceDifficulte = { "porteecourte": 5, "porteemoyenne": 9, "porteelongue": 14 }
const __tireurDeplacement = { immobile: 0, lent: 3, rapide: 5 }
const __cibleCouvert = { aucun: 0, leger: 5, complet: 10 }
const __tailleCible = { normal: 0, main: 10, enfant: 3, maison: -10 }
/* -------------------------------------------- */
export class HawkmoonUtility {
@ -15,8 +15,7 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static async init() {
Hooks.on('renderChatLog', (log, html, data) => HawkmoonUtility.chatListeners(html))
Hooks.on("getChatLogEntryContext", (html, options) => HawkmoonUtility.chatRollMenu(html, options))
Hooks.on("getChatMessageContextOptions", (html, options) => HawkmoonUtility.chatRollMenu(html, options))
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
HawkmoonUtility.pushInitiativeOptions(html, options);
})
@ -114,6 +113,26 @@ export class HawkmoonUtility {
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp"
let logoImg = document.querySelector('#pause').children[0]
logoImg.setAttribute('style', `content: url(${logoPause})`)
game.system.hawkmoon.config.listeNiveauSkill = this.createDirectOptionList(0, 10)
game.system.hawkmoon.config.listeNiveauCreature = this.createDirectOptionList(0, 35)
game.system.hawkmoon.config.listeNiveauContact = this.createDirectOptionList(1, 3)
}
/* -------------------------------------------- */
static createDirectOptionList(min, max) {
let options = {};
for (let i = min; i <= max; i++) {
options[`${i}`] = `${i}`;
}
return options;
}
static createArrayOptionList(min, max) {
let options = [];
for (let i = min; i <= max; i++) {
options.push({ key: `${i}`, label: `${i}` });
}
return options;
}
/* -------------------------------------------- */
@ -135,25 +154,25 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static async chatListeners(html) {
html.on("click", '.predilection-reroll', async event => {
$(html).on("click", '.predilection-reroll', async event => {
let predIdx = $(event.currentTarget).data("predilection-index")
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = HawkmoonUtility.getActorFromRollData(rollData)
await actor.setPredilectionUsed(rollData.competence._id, predIdx)
rollData.competence = duplicate(actor.getCompetence(rollData.competence._id))
rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id))
HawkmoonUtility.rollHawkmoon(rollData)
})
html.on("click", '.roll-chat-degat', async event => {
$(html).on("click", '.roll-chat-degat', async event => {
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
let message = game.messages.get(messageId)
let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = HawkmoonUtility.getActorFromRollData(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 message = game.messages.get(messageId)
let rollData = message.getFlag("world", "hawkmoon-roll")
@ -172,14 +191,11 @@ export class HawkmoonUtility {
'systems/fvtt-hawkmoon-cyd/templates/partial-item-header.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-item-description.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-item-nav.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-list-niveau.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-list-niveau-creature.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-item-prix.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-sante-etat.html',
'systems/fvtt-hawkmoon-cyd/templates/partial-automation.html',
'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html',
]
return loadTemplates(templatePaths);
return foundry.applications.handlebars.loadTemplates(templatePaths);
}
/* -------------------------------------------- */
@ -256,15 +272,19 @@ export class HawkmoonUtility {
let id = rollData.rollId;
let oldRollData = this.rollDataStore[id] || {};
let newRollData = mergeObject(oldRollData, rollData);
let newRollData = foundry.utils.mergeObject(oldRollData, rollData);
this.rollDataStore[id] = newRollData;
}
/* -------------------------------------------- */
static onSocketMesssage(msg) {
if (msg.name == "msg_apply_combativite") {
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
defender.changeEtatCombativite(msg.data.value)
if (msg.msg == "msg_apply_combativite") {
let defender = game.canvas.tokens.get(msg.data.defenderTokenId)?.actor
if (defender) {
defender.changeEtatCombativite(msg.data.value)
} else {
console.warn("HawkmoonUtility.onSocketMesssage : Impossible de trouver le token pour appliquer la combativité", msg.defenderTokenId)
}
}
}
@ -298,10 +318,10 @@ export class HawkmoonUtility {
switch (rollMode) {
case "blindroll": //GM only
blind = true;
case "gmroll": //GM + rolling player
case "gmroll": // GM + rolling player
whisper = this.getUsers(user => user.isGM);
break;
case "roll": //everybody
case "roll": // everybody
whisper = this.getUsers(user => user.active);
break;
case "selfroll":
@ -338,14 +358,19 @@ export class HawkmoonUtility {
}
}
//console.log("Result : ", rollData)
//console.log("Result : ", rollData
this.computeResultQuality(rollData)
}
/* -------------------------------------------- */
static computeResultQuality(rollData) {
if (rollData.difficulte > 0 && !rollData.isDramatique) {
rollData.isSuccess = (rollData.finalResult >= rollData.difficulte)
rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10)
rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10)
}
}
/* -------------------------------------------- */
static applyCombativite(rollData, value) {
if (game.user.isGM) {
@ -364,10 +389,10 @@ export class HawkmoonUtility {
}
if (!rollData.attr) {
rollData.actionImg = "systems/fvtt-hawkmoon-cyd/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
rollData.attr = duplicate(actor.system.attributs[rollData.attrKey])
rollData.attr = foundry.utils.duplicate(actor.system.attributs[rollData.attrKey])
}
if (rollData.attrKey2 != "none") {
rollData.attr2 = duplicate(actor.system.attributs[rollData.attrKey2])
rollData.attr2 = foundry.utils.duplicate(actor.system.attributs[rollData.attrKey2])
}
if (rollData.maitriseId != "none") {
@ -379,7 +404,7 @@ export class HawkmoonUtility {
//console.log("BEFORE COMP", rollData)
if (rollData.competence) {
rollData.predilections = duplicate(rollData.competence.system.predilections || [])
rollData.predilections = foundry.utils.duplicate(rollData.competence.system.predilections || [])
let compmod = (rollData.competence.system.niveau == 0) ? -3 : 0
rollData.diceFormula += `+${rollData.attr.value}+${rollData.competence.system.niveau}+${rollData.modificateur}+${compmod}`
@ -415,10 +440,10 @@ export class HawkmoonUtility {
rollData.diceFormula += `+3`
}
if (rollData.hasAmbidextre) {
if ( rollData.attaqueAmbidextre1) {
if (rollData.ambidextre1) {
rollData.diceFormula += `-3`
} else if ( rollData.attaqueAmbidextre2) {
rollData.diceFormula += `-5`
} else if (rollData.ambidextre2) {
rollData.diceFormula += `-6`
}
}
if (rollData.defenseurAuSol) {
@ -437,7 +462,7 @@ export class HawkmoonUtility {
rollData.diceFormula += `+5`
}
if (rollData.soutiens > 0) { // 1 soutien = +3, 2 soutiens = +4, 3 soutiens = +5
rollData.diceFormula += `+${rollData.soutiens+2}`
rollData.diceFormula += `+${rollData.soutiens + 2}`
}
if (rollData.arme?.system.isDistance) {
@ -463,9 +488,9 @@ export class HawkmoonUtility {
// Gestion de la feinte éventuelle
rollData.nbCombativitePerdu = 1
let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
let myRoll = await new Roll(rollData.diceFormula).roll()
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = duplicate(myRoll)
rollData.roll = foundry.utils.duplicate(myRoll)
console.log(">>>> ", myRoll)
rollData.finalResult = myRoll.total
@ -475,18 +500,18 @@ export class HawkmoonUtility {
}
if (rollData.feinte) {
actor.changeBonneAventure(-1)
if ( rollData.isHeroique) {
if (rollData.isHeroique) {
rollData.nbCombativitePerdu = "vaincu"
} else if ( rollData.isSuccess) {
} else if (rollData.isSuccess) {
rollData.nbCombativitePerdu = 2
}
}
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData)
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData)
}, rollData)
if ( (rollData.coupBas || rollData.arme) && rollData.isSuccess && rollData.defenderTokenId) {
if ((rollData.coupBas || rollData.arme) && rollData.isSuccess && rollData.defenderTokenId) {
this.applyCombativite(rollData, rollData.nbCombativitePerdu)
}
if (rollData.coupBas && rollData.isSuccess && rollData.defenderTokenId) {
@ -497,30 +522,35 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static getCombativiteList(nbActivite) {
let list = [ { value: 0, label: "Combatif"}]
for (let i = 1; i < nbActivite-2; i++) {
list.push({ value: i, label:"Eprouvé " + i} )
let list = [{ value: String(0), label: "Combatif" }]
for (let i = 1; i < nbActivite - 2; i++) {
list.push({ value: String(i), label: "Eprouvé " + i })
}
list[nbActivite-2] = { value: nbActivite-2, label:"Affaibli"}
list[nbActivite-1] = { value: nbActivite-1, label:"Très Affaibli"}
list[nbActivite] = { value: nbActivite, label:"Vaincu"}
list[nbActivite - 2] = { value: String(nbActivite - 2), label: "Affaibli" }
list[nbActivite - 1] = { value: String(nbActivite - 1), label: "Très Affaibli" }
list[nbActivite] = { value: String(nbActivite), label: "Vaincu" }
return list
}
/* -------------------------------------------- */
static async bonusRollHawkmoon(rollData) {
rollData.bonusFormula = rollData.addedBonus
console.log("Bonus Roll Hawkmoon", rollData.bonusFormula)
let bonusRoll = new Roll(rollData.bonusFormula).roll({ async: false })
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
rollData.bonusRoll = duplicate(bonusRoll)
if (!Number(rollData.bonusFormula)) {
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
rollData.finalResult += Number(rollData.bonusRoll.total)
} else {
rollData.finalResult += Number(rollData.bonusFormula)
console.log("Bonus Roll Hawkmoon 2", rollData.finalResult)
}
rollData.finalResult += rollData.bonusRoll.total
this.computeResult(rollData)
this.computeResultQuality(rollData)
this.createChatWithRollMode(rollData.alias, {
content: await renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData)
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-generic-result.html`, rollData)
}, rollData)
}
@ -547,7 +577,7 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static blindMessageToGM(chatOptions) {
let chatGM = duplicate(chatOptions);
let chatGM = foundry.utils.duplicate(chatOptions);
chatGM.whisper = this.getUsers(user => user.isGM);
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
console.log("blindMessageToGM", chatGM);
@ -611,7 +641,7 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static getBasicRollData() {
let rollData = {
rollId: randomID(16),
rollId: foundry.utils.randomID(16),
rollMode: game.settings.get("core", "rollMode"),
modificateursOptions: this.getModificateurOptions(),
pointAmeOptions: this.getPointAmeOptions(),
@ -630,11 +660,11 @@ export class HawkmoonUtility {
distanceTir: "porteemoyenne",
attaqueCharge: false,
attaqueDesarme: false,
attaqueAmbidextre1 : false,
attaqueAmbidextre2 : false,
chargeCavalerie : false,
contenir : false,
soutiens : 0
attaqueAmbidextre1: false,
attaqueAmbidextre2: false,
chargeCavalerie: false,
contenir: false,
soutiens: 0
}
return rollData
}
@ -646,6 +676,7 @@ export class HawkmoonUtility {
rollData.defenderTokenId = target.id
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
rollData.armeDefense = defender.getBestDefenseValue()
rollData.armeAttaqueDefenseur = defender.getBestAttackValue()
rollData.targetVigueur = defender.getVigueur()
rollData.protectionDefenseur = defender.getProtection()
if (rollData.immobiliser || rollData.repousser) {
@ -654,11 +685,13 @@ export class HawkmoonUtility {
} else if (rollData.coupBas) {
let combatValues = defender.getCombatValues()
rollData.difficulte = combatValues.defenseTotal
}else if ( rollData.assomer) {
} else if (rollData.assomer) {
rollData.difficulte = 3 + (defender.system.attributs.tre.value * 2)
} else if (rollData.desengager) {
rollData.difficulte = rollData.armeAttaqueDefenseur?.system?.totalOffensif || 0;
} else if (rollData.armeDefense) {
rollData.difficulte = rollData.armeDefense.system.totalDefensif
if ( !rollData.desengager && !rollData.arme.system.armenaturelle && !rollData.arme.system.armefortune ){
if (!rollData.desengager && !rollData.arme.system.armenaturelle && !rollData.arme.system.armefortune) {
if (rollData.armeDefense.system.armenaturelle || rollData.armeDefense.system.armefortune) {
rollData.bonusArmeNaturelle = 3
}
@ -676,7 +709,7 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static applyBonneAventureRoll(li, changed, addedBonus) {
let msgId = li.data("message-id")
let msgId = $(li).data("message-id")
let msg = game.messages.get(msgId)
if (msg) {
let rollData = msg.getFlag("world", "hawkmoon-roll")
@ -695,7 +728,7 @@ export class HawkmoonUtility {
/* -------------------------------------------- */
static applyEclatRoll(li, changed, addedBonus) {
let msgId = li.data("message-id")
let msgId = $(li).data("message-id")
let msg = game.messages.get(msgId)
if (msg) {
let rollData = msg.getFlag("world", "hawkmoon-roll")
@ -716,13 +749,13 @@ export class HawkmoonUtility {
static chatRollMenu(html, options) {
let canApply = li => canvas.tokens.controlled.length && li.find(".hawkmoon-roll").length
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 actor = HawkmoonUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getBonneAventure() > 0)
}
let canApplyPE = function (li) {
let message = game.messages.get(li.attr("data-message-id"))
let message = game.messages.get($(li).attr("data-message-id"))
let rollData = message.getFlag("world", "hawkmoon-roll")
let actor = HawkmoonUtility.getActorFromRollData(rollData)
return (!rollData.isReroll && actor.getEclat() > 0)
@ -748,7 +781,7 @@ export class HawkmoonUtility {
name: "Relancer le dé (1 point d'Eclat)",
icon: "<i class='fas fa-user-plus'></i>",
condition: canApply && canApplyPE,
callback: li => HawkmoonUtility.applyEclatRoll(li, -3, "reroll")
callback: li => HawkmoonUtility.applyEclatRoll(li, -1, "reroll")
}
)
return options

View File

@ -1 +1 @@
MANIFEST-000152
MANIFEST-000301

View File

@ -1,8 +1,8 @@
2024/04/24-19:19:44.588303 7fcc654006c0 Recovering log #150
2024/04/24-19:19:45.046737 7fcc654006c0 Delete type=3 #148
2024/04/24-19:19:45.047257 7fcc654006c0 Delete type=0 #150
2024/04/24-20:38:33.674583 7fcc5e4006c0 Level-0 table #155: started
2024/04/24-20:38:33.674627 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
2024/04/24-20:38:33.681197 7fcc5e4006c0 Delete type=0 #153
2024/04/24-20:38:33.681325 7fcc5e4006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.681347 7fcc5e4006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2025/06/24-20:47:28.504597 7f151effd6c0 Recovering log #299
2025/06/24-20:47:28.514673 7f151effd6c0 Delete type=3 #297
2025/06/24-20:47:28.514784 7f151effd6c0 Delete type=0 #299
2025/06/24-21:03:58.298797 7f151d7fa6c0 Level-0 table #304: started
2025/06/24-21:03:58.298835 7f151d7fa6c0 Level-0 table #304: 0 bytes OK
2025/06/24-21:03:58.305605 7f151d7fa6c0 Delete type=0 #302
2025/06/24-21:03:58.316223 7f151d7fa6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2025/06/24-21:03:58.316257 7f151d7fa6c0 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/04/07-18:44:43.940864 7f38a3e006c0 Recovering log #146
2024/04/07-18:44:43.951368 7f38a3e006c0 Delete type=3 #144
2024/04/07-18:44:43.951425 7f38a3e006c0 Delete type=0 #146
2024/04/07-18:53:15.757658 7f38a10006c0 Level-0 table #151: started
2024/04/07-18:53:15.757696 7f38a10006c0 Level-0 table #151: 0 bytes OK
2024/04/07-18:53:15.765139 7f38a10006c0 Delete type=0 #149
2024/04/07-18:53:15.765299 7f38a10006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.765326 7f38a10006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2025/06/03-13:26:59.527706 7f53dffff6c0 Recovering log #295
2025/06/03-13:26:59.538330 7f53dffff6c0 Delete type=3 #293
2025/06/03-13:26:59.538407 7f53dffff6c0 Delete type=0 #295
2025/06/03-13:30:56.587918 7f53df3ff6c0 Level-0 table #300: started
2025/06/03-13:30:56.587964 7f53df3ff6c0 Level-0 table #300: 0 bytes OK
2025/06/03-13:30:56.617514 7f53df3ff6c0 Delete type=0 #298
2025/06/03-13:30:56.714892 7f53df3ff6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2025/06/03-13:30:56.715021 7f53df3ff6c0 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/000275.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000152
MANIFEST-000300

View File

@ -1,8 +1,8 @@
2024/04/24-19:19:43.144098 7fcc5fe006c0 Recovering log #150
2024/04/24-19:19:43.367448 7fcc5fe006c0 Delete type=3 #148
2024/04/24-19:19:43.367549 7fcc5fe006c0 Delete type=0 #150
2024/04/24-20:38:33.619450 7fcc5e4006c0 Level-0 table #155: started
2024/04/24-20:38:33.619488 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
2024/04/24-20:38:33.626512 7fcc5e4006c0 Delete type=0 #153
2024/04/24-20:38:33.632878 7fcc5e4006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.639837 7fcc5e4006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2025/06/24-20:47:28.375708 7f151effd6c0 Recovering log #298
2025/06/24-20:47:28.385573 7f151effd6c0 Delete type=3 #296
2025/06/24-20:47:28.385688 7f151effd6c0 Delete type=0 #298
2025/06/24-21:03:58.229253 7f151d7fa6c0 Level-0 table #303: started
2025/06/24-21:03:58.229277 7f151d7fa6c0 Level-0 table #303: 0 bytes OK
2025/06/24-21:03:58.235239 7f151d7fa6c0 Delete type=0 #301
2025/06/24-21:03:58.255927 7f151d7fa6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2025/06/24-21:03:58.255971 7f151d7fa6c0 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/04/07-18:44:43.841800 7f38a2a006c0 Recovering log #146
2024/04/07-18:44:43.851587 7f38a2a006c0 Delete type=3 #144
2024/04/07-18:44:43.851700 7f38a2a006c0 Delete type=0 #146
2024/04/07-18:53:15.687706 7f38a10006c0 Level-0 table #151: started
2024/04/07-18:53:15.687751 7f38a10006c0 Level-0 table #151: 0 bytes OK
2024/04/07-18:53:15.694223 7f38a10006c0 Delete type=0 #149
2024/04/07-18:53:15.709272 7f38a10006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.709352 7f38a10006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2025/06/03-13:26:59.405001 7f53e5dfa6c0 Recovering log #294
2025/06/03-13:26:59.415733 7f53e5dfa6c0 Delete type=3 #292
2025/06/03-13:26:59.415800 7f53e5dfa6c0 Delete type=0 #294
2025/06/03-13:30:56.309035 7f53df3ff6c0 Level-0 table #299: started
2025/06/03-13:30:56.309066 7f53df3ff6c0 Level-0 table #299: 0 bytes OK
2025/06/03-13:30:56.343046 7f53df3ff6c0 Delete type=0 #297
2025/06/03-13:30:56.395832 7f53df3ff6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2025/06/03-13:30:56.395893 7f53df3ff6c0 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-000300 Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000152
MANIFEST-000300

View File

@ -1,8 +1,8 @@
2024/04/24-19:19:43.017708 7fcc64a006c0 Recovering log #150
2024/04/24-19:19:43.076452 7fcc64a006c0 Delete type=3 #148
2024/04/24-19:19:43.076601 7fcc64a006c0 Delete type=0 #150
2024/04/24-20:38:33.605428 7fcc5e4006c0 Level-0 table #155: started
2024/04/24-20:38:33.605456 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
2024/04/24-20:38:33.612661 7fcc5e4006c0 Delete type=0 #153
2024/04/24-20:38:33.619414 7fcc5e4006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.626638 7fcc5e4006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2025/06/24-20:47:28.349172 7f151dffb6c0 Recovering log #298
2025/06/24-20:47:28.359761 7f151dffb6c0 Delete type=3 #296
2025/06/24-20:47:28.359875 7f151dffb6c0 Delete type=0 #298
2025/06/24-21:03:58.203272 7f151d7fa6c0 Level-0 table #303: started
2025/06/24-21:03:58.203347 7f151d7fa6c0 Level-0 table #303: 0 bytes OK
2025/06/24-21:03:58.209369 7f151d7fa6c0 Delete type=0 #301
2025/06/24-21:03:58.229076 7f151d7fa6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2025/06/24-21:03:58.229112 7f151d7fa6c0 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/04/07-18:44:43.814328 7f38a2a006c0 Recovering log #146
2024/04/07-18:44:43.824924 7f38a2a006c0 Delete type=3 #144
2024/04/07-18:44:43.825056 7f38a2a006c0 Delete type=0 #146
2024/04/07-18:53:15.694330 7f38a10006c0 Level-0 table #151: started
2024/04/07-18:53:15.694352 7f38a10006c0 Level-0 table #151: 0 bytes OK
2024/04/07-18:53:15.702258 7f38a10006c0 Delete type=0 #149
2024/04/07-18:53:15.709293 7f38a10006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.709368 7f38a10006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2025/06/03-13:26:59.375226 7f53e55f96c0 Recovering log #294
2025/06/03-13:26:59.385670 7f53e55f96c0 Delete type=3 #292
2025/06/03-13:26:59.385742 7f53e55f96c0 Delete type=0 #294
2025/06/03-13:30:56.443109 7f53df3ff6c0 Level-0 table #299: started
2025/06/03-13:30:56.443148 7f53df3ff6c0 Level-0 table #299: 0 bytes OK
2025/06/03-13:30:56.473604 7f53df3ff6c0 Delete type=0 #297
2025/06/03-13:30:56.493334 7f53df3ff6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2025/06/03-13:30:56.493550 7f53df3ff6c0 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-000152
MANIFEST-000300

View File

@ -1,8 +1,8 @@
2024/04/24-19:19:42.882823 7fcc64a006c0 Recovering log #150
2024/04/24-19:19:42.947075 7fcc64a006c0 Delete type=3 #148
2024/04/24-19:19:42.947209 7fcc64a006c0 Delete type=0 #150
2024/04/24-20:38:33.592157 7fcc5e4006c0 Level-0 table #155: started
2024/04/24-20:38:33.592206 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
2024/04/24-20:38:33.598509 7fcc5e4006c0 Delete type=0 #153
2024/04/24-20:38:33.605418 7fcc5e4006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.612914 7fcc5e4006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2025/06/24-20:47:28.321545 7f151e7fc6c0 Recovering log #298
2025/06/24-20:47:28.331748 7f151e7fc6c0 Delete type=3 #296
2025/06/24-20:47:28.331800 7f151e7fc6c0 Delete type=0 #298
2025/06/24-21:03:58.209532 7f151d7fa6c0 Level-0 table #303: started
2025/06/24-21:03:58.209573 7f151d7fa6c0 Level-0 table #303: 0 bytes OK
2025/06/24-21:03:58.215589 7f151d7fa6c0 Delete type=0 #301
2025/06/24-21:03:58.229089 7f151d7fa6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2025/06/24-21:03:58.229117 7f151d7fa6c0 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/04/07-18:44:43.786249 7f38a2a006c0 Recovering log #146
2024/04/07-18:44:43.797379 7f38a2a006c0 Delete type=3 #144
2024/04/07-18:44:43.797432 7f38a2a006c0 Delete type=0 #146
2024/04/07-18:53:15.681177 7f38a10006c0 Level-0 table #151: started
2024/04/07-18:53:15.681197 7f38a10006c0 Level-0 table #151: 0 bytes OK
2024/04/07-18:53:15.687480 7f38a10006c0 Delete type=0 #149
2024/04/07-18:53:15.709243 7f38a10006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.709312 7f38a10006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2025/06/03-13:26:59.341579 7f53dffff6c0 Recovering log #294
2025/06/03-13:26:59.353145 7f53dffff6c0 Delete type=3 #292
2025/06/03-13:26:59.353222 7f53dffff6c0 Delete type=0 #294
2025/06/03-13:30:56.343217 7f53df3ff6c0 Level-0 table #299: started
2025/06/03-13:30:56.343264 7f53df3ff6c0 Level-0 table #299: 0 bytes OK
2025/06/03-13:30:56.370130 7f53df3ff6c0 Delete type=0 #297
2025/06/03-13:30:56.395847 7f53df3ff6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2025/06/03-13:30:56.395903 7f53df3ff6c0 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/000275.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000152
MANIFEST-000300

View File

@ -1,8 +1,8 @@
2024/04/24-19:19:43.562687 7fcc5fe006c0 Recovering log #150
2024/04/24-19:19:43.720740 7fcc5fe006c0 Delete type=3 #148
2024/04/24-19:19:43.720811 7fcc5fe006c0 Delete type=0 #150
2024/04/24-20:38:33.632917 7fcc5e4006c0 Level-0 table #155: started
2024/04/24-20:38:33.632957 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
2024/04/24-20:38:33.639646 7fcc5e4006c0 Delete type=0 #153
2024/04/24-20:38:33.647315 7fcc5e4006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.653621 7fcc5e4006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2025/06/24-20:47:28.402925 7f151e7fc6c0 Recovering log #298
2025/06/24-20:47:28.413436 7f151e7fc6c0 Delete type=3 #296
2025/06/24-20:47:28.413494 7f151e7fc6c0 Delete type=0 #298
2025/06/24-21:03:58.249333 7f151d7fa6c0 Level-0 table #303: started
2025/06/24-21:03:58.249401 7f151d7fa6c0 Level-0 table #303: 0 bytes OK
2025/06/24-21:03:58.255814 7f151d7fa6c0 Delete type=0 #301
2025/06/24-21:03:58.255957 7f151d7fa6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2025/06/24-21:03:58.255982 7f151d7fa6c0 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/04/07-18:44:43.869311 7f38a2a006c0 Recovering log #146
2024/04/07-18:44:43.880871 7f38a2a006c0 Delete type=3 #144
2024/04/07-18:44:43.880923 7f38a2a006c0 Delete type=0 #146
2024/04/07-18:53:15.709571 7f38a10006c0 Level-0 table #151: started
2024/04/07-18:53:15.709616 7f38a10006c0 Level-0 table #151: 0 bytes OK
2024/04/07-18:53:15.716550 7f38a10006c0 Delete type=0 #149
2024/04/07-18:53:15.736946 7f38a10006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.736993 7f38a10006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2025/06/03-13:26:59.435242 7f53dffff6c0 Recovering log #294
2025/06/03-13:26:59.446161 7f53dffff6c0 Delete type=3 #292
2025/06/03-13:26:59.446239 7f53dffff6c0 Delete type=0 #294
2025/06/03-13:30:56.419788 7f53df3ff6c0 Level-0 table #299: started
2025/06/03-13:30:56.419819 7f53df3ff6c0 Level-0 table #299: 0 bytes OK
2025/06/03-13:30:56.442933 7f53df3ff6c0 Delete type=0 #297
2025/06/03-13:30:56.493303 7f53df3ff6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2025/06/03-13:30:56.493526 7f53df3ff6c0 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-000152
MANIFEST-000300

View File

@ -1,8 +1,8 @@
2024/04/24-19:19:43.080280 7fcc5fe006c0 Recovering log #150
2024/04/24-19:19:43.137577 7fcc5fe006c0 Delete type=3 #148
2024/04/24-19:19:43.137905 7fcc5fe006c0 Delete type=0 #150
2024/04/24-20:38:33.612932 7fcc5e4006c0 Level-0 table #155: started
2024/04/24-20:38:33.613011 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
2024/04/24-20:38:33.619236 7fcc5e4006c0 Delete type=0 #153
2024/04/24-20:38:33.626625 7fcc5e4006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.632899 7fcc5e4006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2025/06/24-20:47:28.362510 7f151e7fc6c0 Recovering log #298
2025/06/24-20:47:28.372821 7f151e7fc6c0 Delete type=3 #296
2025/06/24-20:47:28.372890 7f151e7fc6c0 Delete type=0 #298
2025/06/24-21:03:58.215818 7f151d7fa6c0 Level-0 table #303: started
2025/06/24-21:03:58.215857 7f151d7fa6c0 Level-0 table #303: 0 bytes OK
2025/06/24-21:03:58.222622 7f151d7fa6c0 Delete type=0 #301
2025/06/24-21:03:58.229098 7f151d7fa6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2025/06/24-21:03:58.229123 7f151d7fa6c0 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/04/07-18:44:43.827816 7f38a3e006c0 Recovering log #146
2024/04/07-18:44:43.838730 7f38a3e006c0 Delete type=3 #144
2024/04/07-18:44:43.838786 7f38a3e006c0 Delete type=0 #146
2024/04/07-18:53:15.702497 7f38a10006c0 Level-0 table #151: started
2024/04/07-18:53:15.702540 7f38a10006c0 Level-0 table #151: 0 bytes OK
2024/04/07-18:53:15.708964 7f38a10006c0 Delete type=0 #149
2024/04/07-18:53:15.709333 7f38a10006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.709410 7f38a10006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2025/06/03-13:26:59.389629 7f53dffff6c0 Recovering log #294
2025/06/03-13:26:59.400611 7f53dffff6c0 Delete type=3 #292
2025/06/03-13:26:59.400739 7f53dffff6c0 Delete type=0 #294
2025/06/03-13:30:56.289820 7f53df3ff6c0 Level-0 table #299: started
2025/06/03-13:30:56.289876 7f53df3ff6c0 Level-0 table #299: 0 bytes OK
2025/06/03-13:30:56.308894 7f53df3ff6c0 Delete type=0 #297
2025/06/03-13:30:56.395816 7f53df3ff6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2025/06/03-13:30:56.395867 7f53df3ff6c0 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/000185.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000062
MANIFEST-000210

View File

@ -1,8 +1,8 @@
2024/04/24-19:19:42.952046 7fcc5fe006c0 Recovering log #60
2024/04/24-19:19:43.001963 7fcc5fe006c0 Delete type=3 #58
2024/04/24-19:19:43.002046 7fcc5fe006c0 Delete type=0 #60
2024/04/24-20:38:33.598679 7fcc5e4006c0 Level-0 table #65: started
2024/04/24-20:38:33.598713 7fcc5e4006c0 Level-0 table #65: 0 bytes OK
2024/04/24-20:38:33.605307 7fcc5e4006c0 Delete type=0 #63
2024/04/24-20:38:33.612894 7fcc5e4006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.619433 7fcc5e4006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2025/06/24-20:47:28.335175 7f151f7fe6c0 Recovering log #208
2025/06/24-20:47:28.345128 7f151f7fe6c0 Delete type=3 #206
2025/06/24-20:47:28.345266 7f151f7fe6c0 Delete type=0 #208
2025/06/24-21:03:58.222777 7f151d7fa6c0 Level-0 table #213: started
2025/06/24-21:03:58.222803 7f151d7fa6c0 Level-0 table #213: 0 bytes OK
2025/06/24-21:03:58.228922 7f151d7fa6c0 Delete type=0 #211
2025/06/24-21:03:58.229105 7f151d7fa6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2025/06/24-21:03:58.229129 7f151d7fa6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/04/07-18:44:43.800976 7f38a3e006c0 Recovering log #56
2024/04/07-18:44:43.810946 7f38a3e006c0 Delete type=3 #54
2024/04/07-18:44:43.811011 7f38a3e006c0 Delete type=0 #56
2024/04/07-18:53:15.674292 7f38a10006c0 Level-0 table #61: started
2024/04/07-18:53:15.674318 7f38a10006c0 Level-0 table #61: 0 bytes OK
2024/04/07-18:53:15.680930 7f38a10006c0 Delete type=0 #59
2024/04/07-18:53:15.681066 7f38a10006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.681085 7f38a10006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2025/06/03-13:26:59.357421 7f53e5dfa6c0 Recovering log #204
2025/06/03-13:26:59.368746 7f53e5dfa6c0 Delete type=3 #202
2025/06/03-13:26:59.368822 7f53e5dfa6c0 Delete type=0 #204
2025/06/03-13:30:56.370280 7f53df3ff6c0 Level-0 table #209: started
2025/06/03-13:30:56.370317 7f53df3ff6c0 Level-0 table #209: 0 bytes OK
2025/06/03-13:30:56.395566 7f53df3ff6c0 Delete type=0 #207
2025/06/03-13:30:56.395858 7f53df3ff6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2025/06/03-13:30:56.395878 7f53df3ff6c0 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/000275.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000152
MANIFEST-000300

View File

@ -1,8 +1,8 @@
2024/04/24-19:19:43.730272 7fcc654006c0 Recovering log #150
2024/04/24-19:19:43.889184 7fcc654006c0 Delete type=3 #148
2024/04/24-19:19:43.889335 7fcc654006c0 Delete type=0 #150
2024/04/24-20:38:33.639856 7fcc5e4006c0 Level-0 table #155: started
2024/04/24-20:38:33.639921 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
2024/04/24-20:38:33.647189 7fcc5e4006c0 Delete type=0 #153
2024/04/24-20:38:33.653608 7fcc5e4006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.660740 7fcc5e4006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2025/06/24-20:47:28.416644 7f151dffb6c0 Recovering log #298
2025/06/24-20:47:28.426500 7f151dffb6c0 Delete type=3 #296
2025/06/24-20:47:28.426560 7f151dffb6c0 Delete type=0 #298
2025/06/24-21:03:58.241851 7f151d7fa6c0 Level-0 table #303: started
2025/06/24-21:03:58.241903 7f151d7fa6c0 Level-0 table #303: 0 bytes OK
2025/06/24-21:03:58.249125 7f151d7fa6c0 Delete type=0 #301
2025/06/24-21:03:58.255950 7f151d7fa6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2025/06/24-21:03:58.255977 7f151d7fa6c0 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/04/07-18:44:43.885807 7f38a3e006c0 Recovering log #146
2024/04/07-18:44:43.895718 7f38a3e006c0 Delete type=3 #144
2024/04/07-18:44:43.895858 7f38a3e006c0 Delete type=0 #146
2024/04/07-18:53:15.716770 7f38a10006c0 Level-0 table #151: started
2024/04/07-18:53:15.716808 7f38a10006c0 Level-0 table #151: 0 bytes OK
2024/04/07-18:53:15.723524 7f38a10006c0 Delete type=0 #149
2024/04/07-18:53:15.736955 7f38a10006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.737004 7f38a10006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2025/06/03-13:26:59.451891 7f53e4df86c0 Recovering log #294
2025/06/03-13:26:59.462166 7f53e4df86c0 Delete type=3 #292
2025/06/03-13:26:59.462241 7f53e4df86c0 Delete type=0 #294
2025/06/03-13:30:56.493648 7f53df3ff6c0 Level-0 table #299: started
2025/06/03-13:30:56.493718 7f53df3ff6c0 Level-0 table #299: 0 bytes OK
2025/06/03-13:30:56.524994 7f53df3ff6c0 Delete type=0 #297
2025/06/03-13:30:56.587752 7f53df3ff6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2025/06/03-13:30:56.587819 7f53df3ff6c0 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-000152
MANIFEST-000300

View File

@ -1,8 +1,8 @@
2024/04/24-19:19:43.378670 7fcc654006c0 Recovering log #150
2024/04/24-19:19:43.554194 7fcc654006c0 Delete type=3 #148
2024/04/24-19:19:43.554281 7fcc654006c0 Delete type=0 #150
2024/04/24-20:38:33.626647 7fcc5e4006c0 Level-0 table #155: started
2024/04/24-20:38:33.626669 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
2024/04/24-20:38:33.632751 7fcc5e4006c0 Delete type=0 #153
2024/04/24-20:38:33.639816 7fcc5e4006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/04/24-20:38:33.647329 7fcc5e4006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2025/06/24-20:47:28.388683 7f151f7fe6c0 Recovering log #298
2025/06/24-20:47:28.399664 7f151f7fe6c0 Delete type=3 #296
2025/06/24-20:47:28.399728 7f151f7fe6c0 Delete type=0 #298
2025/06/24-21:03:58.235416 7f151d7fa6c0 Level-0 table #303: started
2025/06/24-21:03:58.235454 7f151d7fa6c0 Level-0 table #303: 0 bytes OK
2025/06/24-21:03:58.241632 7f151d7fa6c0 Delete type=0 #301
2025/06/24-21:03:58.255941 7f151d7fa6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2025/06/24-21:03:58.255965 7f151d7fa6c0 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/04/07-18:44:43.856327 7f38a3e006c0 Recovering log #146
2024/04/07-18:44:43.867226 7f38a3e006c0 Delete type=3 #144
2024/04/07-18:44:43.867361 7f38a3e006c0 Delete type=0 #146
2024/04/07-18:53:15.723744 7f38a10006c0 Level-0 table #151: started
2024/04/07-18:53:15.723796 7f38a10006c0 Level-0 table #151: 0 bytes OK
2024/04/07-18:53:15.730185 7f38a10006c0 Delete type=0 #149
2024/04/07-18:53:15.736963 7f38a10006c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2024/04/07-18:53:15.736999 7f38a10006c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2025/06/03-13:26:59.420295 7f53e55f96c0 Recovering log #294
2025/06/03-13:26:59.431966 7f53e55f96c0 Delete type=3 #292
2025/06/03-13:26:59.432124 7f53e55f96c0 Delete type=0 #294
2025/06/03-13:30:56.395990 7f53df3ff6c0 Level-0 table #299: started
2025/06/03-13:30:56.396032 7f53df3ff6c0 Level-0 table #299: 0 bytes OK
2025/06/03-13:30:56.419643 7f53df3ff6c0 Delete type=0 #297
2025/06/03-13:30:56.493262 7f53df3ff6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2025/06/03-13:30:56.493501 7f53df3ff6c0 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/000114.ldb Normal file

Binary file not shown.

1
packs/scenes/CURRENT Normal file
View File

@ -0,0 +1 @@
MANIFEST-000139

8
packs/scenes/LOG Normal file
View File

@ -0,0 +1,8 @@
2025/06/24-20:47:28.489732 7f151dffb6c0 Recovering log #137
2025/06/24-20:47:28.500057 7f151dffb6c0 Delete type=3 #135
2025/06/24-20:47:28.500112 7f151dffb6c0 Delete type=0 #137
2025/06/24-21:03:58.268967 7f151d7fa6c0 Level-0 table #142: started
2025/06/24-21:03:58.268991 7f151d7fa6c0 Level-0 table #142: 0 bytes OK
2025/06/24-21:03:58.275402 7f151d7fa6c0 Delete type=0 #140
2025/06/24-21:03:58.281956 7f151d7fa6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
2025/06/24-21:03:58.281978 7f151d7fa6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)

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

@ -0,0 +1,8 @@
2025/06/03-13:26:59.510357 7f53e55f96c0 Recovering log #133
2025/06/03-13:26:59.521177 7f53e55f96c0 Delete type=3 #131
2025/06/03-13:26:59.521252 7f53e55f96c0 Delete type=0 #133
2025/06/03-13:30:56.560168 7f53df3ff6c0 Level-0 table #138: started
2025/06/03-13:30:56.560227 7f53df3ff6c0 Level-0 table #138: 0 bytes OK
2025/06/03-13:30:56.587569 7f53df3ff6c0 Delete type=0 #136
2025/06/03-13:30:56.587808 7f53df3ff6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
2025/06/03-13:30:56.587843 7f53df3ff6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000152
MANIFEST-000296

View File

@ -1,7 +1,7 @@
2024/04/24-19:19:44.361715 7fcc5fe006c0 Recovering log #150
2024/04/24-19:19:44.586287 7fcc5fe006c0 Delete type=3 #148
2024/04/24-19:19:44.586391 7fcc5fe006c0 Delete type=0 #150
2024/04/24-20:38:33.660752 7fcc5e4006c0 Level-0 table #155: started
2024/04/24-20:38:33.660779 7fcc5e4006c0 Level-0 table #155: 0 bytes OK
2024/04/24-20:38:33.667170 7fcc5e4006c0 Delete type=0 #153
2024/04/24-20:38:33.674538 7fcc5e4006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2025/06/24-20:47:28.457071 7f151e7fc6c0 Recovering log #294
2025/06/24-20:47:28.486359 7f151e7fc6c0 Delete type=3 #292
2025/06/24-20:47:28.486438 7f151e7fc6c0 Delete type=0 #294
2025/06/24-21:03:58.262166 7f151d7fa6c0 Level-0 table #299: started
2025/06/24-21:03:58.262187 7f151d7fa6c0 Level-0 table #299: 0 bytes OK
2025/06/24-21:03:58.268859 7f151d7fa6c0 Delete type=0 #297
2025/06/24-21:03:58.281947 7f151d7fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2024/04/07-18:44:43.927559 7f38a2a006c0 Recovering log #146
2024/04/07-18:44:43.937525 7f38a2a006c0 Delete type=3 #144
2024/04/07-18:44:43.937610 7f38a2a006c0 Delete type=0 #146
2024/04/07-18:53:15.737130 7f38a10006c0 Level-0 table #151: started
2024/04/07-18:53:15.737157 7f38a10006c0 Level-0 table #151: 0 bytes OK
2024/04/07-18:53:15.743304 7f38a10006c0 Delete type=0 #149
2024/04/07-18:53:15.765257 7f38a10006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2025/06/03-13:26:59.496690 7f53dffff6c0 Recovering log #290
2025/06/03-13:26:59.506809 7f53dffff6c0 Delete type=3 #288
2025/06/03-13:26:59.506885 7f53dffff6c0 Delete type=0 #290
2025/06/03-13:30:56.525259 7f53df3ff6c0 Level-0 table #295: started
2025/06/03-13:30:56.525330 7f53df3ff6c0 Level-0 table #295: 0 bytes OK
2025/06/03-13:30:56.539878 7f53df3ff6c0 Delete type=0 #293
2025/06/03-13:30:56.587776 7f53df3ff6c0 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.

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