Compare commits

..

11 Commits

Author SHA1 Message Date
uberwald 0aba87a9de Correction de style CSS
Release Creation / build (release) Successful in 41s
2026-06-03 20:50:40 +02:00
uberwald 0cb764f1f3 Minor fixes and enhancements 2026-04-02 09:29:27 +02:00
uberwald 81c1848e87 Correction sur jet de carac uniquement + bonus degats devant être à 0
Release Creation / build (release) Successful in 42s
2026-04-01 23:49:20 +02:00
uberwald c172e20244 Foundryv14 migration
Release Creation / build (release) Successful in 46s
2026-04-01 22:20:23 +02:00
uberwald d4f024f910 Foundryv14 migration
Release Creation / build (release) Successful in 1m39s
2026-04-01 21:52:37 +02:00
uberwald 3eab0ded89 Foundryv14 migration 2026-04-01 21:52:19 +02:00
uberwald 7d9aaa0085 Fix for v14 2026-03-29 20:53:07 +02:00
uberwald fcf5c10346 Correction initiative et meilleur affichage sur jet D20 2026-03-10 21:00:00 +01:00
uberwald 71b384c963 Correction initiative et meilleur affichage sur jet D20
Release Creation / build (release) Successful in 51s
2026-03-10 20:50:43 +01:00
uberwald f0a74d5daa Correction des biodatas
Release Creation / build (release) Successful in 49s
2026-01-18 18:08:57 +01:00
uberwald 9eb97a1acd Ajout release process 2026-01-09 17:46:36 +01:00
123 changed files with 410 additions and 328 deletions
+1 -1
View File
@@ -60,4 +60,4 @@ jobs:
manifest: 'https://www.uberwald.me/gitea/public/fvtt-hawkmoon-cyd/releases/download/latest/system.json' manifest: 'https://www.uberwald.me/gitea/public/fvtt-hawkmoon-cyd/releases/download/latest/system.json'
notes: 'https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-hawkmoon-cyd.zip' notes: 'https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-hawkmoon-cyd.zip'
compatibility-minimum: '13' compatibility-minimum: '13'
compatibility-verified: '13' compatibility-verified: '14'
+1
View File
@@ -8,3 +8,4 @@ todo.md
/jsconfig.json /jsconfig.json
/package.json /package.json
/package-lock.json /package-lock.json
.github/
+33 -3
View File
@@ -482,19 +482,23 @@ table {
color: rgba(0, 0, 0, 0.9); color: rgba(0, 0, 0, 0.9);
} }
.editor { .application.sheet .editor,
.window-app.sheet .editor {
border: 2; border: 2;
height: 300px; height: 300px;
margin-top: 8px;
padding: 0 3px; padding: 0 3px;
} }
.medium-editor { .application.sheet .medium-editor,
.window-app.sheet .medium-editor {
border: 2; border: 2;
height: 240px; height: 240px;
padding: 0 3px; padding: 0 3px;
} }
.small-editor { .application.sheet .small-editor,
.window-app.sheet .small-editor {
border: 2; border: 2;
height: 120px; height: 120px;
padding: 0 3px; padding: 0 3px;
@@ -2678,6 +2682,32 @@ textarea {
} }
} }
.d20-impair {
text-align: center;
flex: 1;
padding: 2px 6px;
background: rgba(255, 152, 0, 0.15);
border: 1px dashed #ff9800;
border-radius: 4px;
font-size: 0.8rem !important;
color: #b36200 !important;
i {
color: #ff9800 !important;
font-size: 0.85rem !important;
display: inline !important;
margin-right: 4px;
}
span.dice-value {
font-size: 0.8rem !important;
display: inline !important;
font-weight: normal !important;
color: #b36200 !important;
text-shadow: none !important;
}
}
.predilection-section { .predilection-section {
padding: 8px 10px; padding: 8px 10px;
background: rgba(156, 39, 176, 0.1); background: rgba(156, 39, 176, 0.1);
@@ -34,7 +34,7 @@ export default class HawkmoonActorSheet extends HandlebarsApplicationMixin(found
}, },
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: "form" }], dragDrop: [{ dragSelector: ".item-list .item", dropSelector: "form" }],
actions: { actions: {
editImage: HawkmoonActorSheet.#onEditImage, //editImage: HawkmoonActorSheet.#onEditImage,
toggleSheet: HawkmoonActorSheet.#onToggleSheet, toggleSheet: HawkmoonActorSheet.#onToggleSheet,
editItem: HawkmoonActorSheet.#onEditItem, editItem: HawkmoonActorSheet.#onEditItem,
deleteItem: HawkmoonActorSheet.#onDeleteItem, deleteItem: HawkmoonActorSheet.#onDeleteItem,
@@ -335,7 +335,7 @@ export default class HawkmoonActorSheet extends HandlebarsApplicationMixin(found
* @private * @private
*/ */
static async #onEditImage(event, target) { static async #onEditImage(event, target) {
const fp = new FilePicker({ const fp = new foundry.applications.apps.FilePicker.implementation({
type: "image", type: "image",
current: this.actor.img, current: this.actor.img,
callback: (path) => { callback: (path) => {
+72 -47
View File
@@ -75,7 +75,7 @@ export class HawkmoonActor extends Actor {
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 = foundry.utils.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") ?? { system: { niveau: 0 } })
arme.system.attrKey = "pui" arme.system.attrKey = "pui"
arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal arme.system.totalDegats = arme.system.degats + "+" + combat.bonusDegatsTotal
arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + (this.system.combat.monte ? 3 : 0) arme.system.totalOffensif = this.system.attributs.pui.value + arme.system.competence.system.niveau + arme.system.bonusmaniementoff + (this.system.combat.monte ? 3 : 0)
@@ -86,7 +86,7 @@ export class HawkmoonActor extends Actor {
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 = foundry.utils.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") ?? { system: { niveau: 0 } })
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
@@ -148,26 +148,32 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getSkills() { getSkills() {
let comp = [] // Utiliser filter et map pour éviter les duplications inutiles
for (let item of this.items) { const comp = this.items
item = foundry.utils.duplicate(item) .filter(item => item.type === "competence")
if (item.type == "competence") { .map(item => {
item.system.attribut1total = item.system.niveau + (this.system.attributs[item.system.attribut1]?.value || 0) const itemCopy = foundry.utils.duplicate(item);
item.system.attribut2total = item.system.niveau + (this.system.attributs[item.system.attribut2]?.value || 0) const attrs = this.system.attributs;
item.system.attribut3total = item.system.niveau + (this.system.attributs[item.system.attribut3]?.value || 0)
if (item.system.niveau == 0) { itemCopy.system.attribut1total = itemCopy.system.niveau + (attrs[itemCopy.system.attribut1]?.value || 0);
item.system.attribut1total -= 3 itemCopy.system.attribut2total = itemCopy.system.niveau + (attrs[itemCopy.system.attribut2]?.value || 0);
item.system.attribut2total -= 3 itemCopy.system.attribut3total = itemCopy.system.niveau + (attrs[itemCopy.system.attribut3]?.value || 0);
item.system.attribut3total -= 3
if (itemCopy.system.niveau === 0) {
itemCopy.system.attribut1total -= 3;
itemCopy.system.attribut2total -= 3;
itemCopy.system.attribut3total -= 3;
} }
item.system.attribut1label = this.system.attributs[item.system.attribut1]?.label || ""
item.system.attribut2label = this.system.attributs[item.system.attribut2]?.label || "" itemCopy.system.attribut1label = attrs[itemCopy.system.attribut1]?.label || "";
item.system.attribut3label = this.system.attributs[item.system.attribut3]?.label || "" itemCopy.system.attribut2label = attrs[itemCopy.system.attribut2]?.label || "";
comp.push(item) itemCopy.system.attribut3label = attrs[itemCopy.system.attribut3]?.label || "";
}
} return itemCopy;
HawkmoonUtility.sortArrayObjectsByName(comp) });
return comp
HawkmoonUtility.sortArrayObjectsByName(comp);
return comp;
} }
/* ----------------------- --------------------- */ /* ----------------------- --------------------- */
@@ -188,7 +194,8 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getVitesseBase() { getVitesseBase() {
return 5 + __vitesseBonus[this.system.attributs.adr.value] const idx = Math.min(this.system.attributs.adr.value, __vitesseBonus.length - 1)
return 5 + (__vitesseBonus[idx] ?? 0)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getProtection() { getProtection() {
@@ -236,6 +243,9 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareBaseData() { prepareBaseData() {
if (game.release.generation >= 14) {
super.prepareBaseData();
}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -305,7 +315,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 = Object.values(this.system.attributs).find(at => at.labelnorm == attribut.toLowerCase())
if (attr && attr.value >= minLevel) { if (attr && attr.value >= minLevel) {
return { isValid: true, attr: foundry.utils.duplicate(attr) } return { isValid: true, attr: foundry.utils.duplicate(attr) }
} }
@@ -403,7 +413,7 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getAttribute(attrKey) { getAttribute(attrKey) {
return this.system.attributes[attrKey] return this.system.attributs[attrKey]
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -653,8 +663,16 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollAttribut(attrKey, isInit = false) { async rollAttribut(attrKey, isInit = false) {
let rollData = this.getCommonRollData(attrKey) let rollData = this.getCommonRollData(attrKey)
rollData.multiplier = (isInit) ? 1 : 2
rollData.isInit = isInit rollData.isInit = isInit
if (isInit) {
rollData.multiplier = 1
rollData.initbonus = this.system.combat.initbonus ?? 0
} else {
rollData.multiplier = 2 // fallback si attrKey2 vaut l'attribut principal
rollData.hasAttr2 = true
rollData.attrKey2 = attrKey // même attribut par défaut = ×2
rollData.selectableAttributes = this.system.attributs
}
await HawkmoonRollDialog.create(this, rollData) await HawkmoonRollDialog.create(this, rollData)
} }
@@ -733,41 +751,48 @@ export class HawkmoonActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollArmeDegats(armeId, targetVigueur = undefined, rollDataInput = undefined) { async rollArmeDegats(armeId, targetVigueur = undefined, rollDataInput = undefined) {
let arme = this.items.get(armeId) const arme = this.items.get(armeId);
if (!arme.system.equipped) { if (!arme) {
ui.notifications.warn("Cette arme doit être équipée pour pouvoir infliger des dégâts !") ui.notifications.warn("Arme non trouvée !");
return return;
} }
if (arme.type == "arme") {
arme = this.prepareArme(arme) if (!arme.system?.equipped) {
ui.notifications.warn("Cette arme doit être équipée pour pouvoir infliger des dégâts !");
return;
} }
console.log("DEGATS", arme, targetVigueur, rollDataInput)
let roll const preparedArme = arme.type === "arme" ? this.prepareArme(arme) : arme;
let bonus = 0 console.log("DEGATS", preparedArme, targetVigueur, rollDataInput);
let bonus2 = 0
let roll;
let bonus = 0;
let bonus2 = 0;
if (rollDataInput?.applyCoupDevastateur) { if (rollDataInput?.applyCoupDevastateur) {
bonus2 = Math.floor(this.system.attributs.pui.value / 2) bonus2 = Math.floor(this.system.attributs.pui.value / 2);
let talent = this.items.find(item => item.type == "talent" && item.name.toLowerCase() == "coup dévastateur") const talent = this.items.find(item => item.type === "talent" && item.name.toLowerCase() === "coup dévastateur");
this.updateEmbeddedDocuments('Item', [{ _id: talent.id, 'system.used': true }]) if (talent) {
await this.updateEmbeddedDocuments('Item', [{ _id: talent.id, 'system.used': true }]);
}
} }
if (rollDataInput?.isHeroique) { if (rollDataInput?.isHeroique) {
if (rollDataInput?.attaqueCharge) { if (rollDataInput?.attaqueCharge) {
bonus = 5 bonus = 5;
} }
if (rollDataInput?.chargeCavalerie) { if (rollDataInput?.chargeCavalerie) {
bonus = 6 bonus = 6;
} }
roll = await new Roll("2d10rr10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll() roll = await new Roll("2d10rr10+" + preparedArme.system.totalDegats + "+" + bonus + "+" + bonus2).roll();
} else { } else {
if (rollDataInput?.attaqueCharge) { if (rollDataInput?.attaqueCharge) {
bonus = 3 bonus = 3;
} }
if (rollDataInput?.chargeCavalerie) { if (rollDataInput?.chargeCavalerie) {
bonus = 4 bonus = 4;
} }
roll = await new Roll("1d10+" + arme.system.totalDegats + "+" + bonus + "+" + bonus2).roll() roll = await new Roll("1d10+" + preparedArme.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
@@ -776,17 +801,17 @@ export class HawkmoonActor extends Actor {
} }
//console.log(roll) //console.log(roll)
let rollData = { let rollData = {
arme: arme, arme: preparedArme,
finalResult: roll.total, finalResult: roll.total,
formula: roll.formula, formula: roll.formula,
alias: this.name, alias: this.name,
actorImg: this.img, actorImg: this.img,
actorId: this.id, actorId: this.id,
defenderTokenId: rollDataInput?.defenderTokenId, defenderTokenId: rollDataInput?.defenderTokenId,
actionImg: arme.img, actionImg: preparedArme.img,
targetVigueur: targetVigueur, targetVigueur: targetVigueur,
nbEtatPerdus: nbEtatPerdus nbEtatPerdus: nbEtatPerdus
} };
HawkmoonUtility.createChatWithRollMode(rollData.alias, { HawkmoonUtility.createChatWithRollMode(rollData.alias, {
content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-degats-result.hbs`, rollData) content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-hawkmoon-cyd/templates/chat-degats-result.hbs`, rollData)
}) })
+8 -1
View File
@@ -10,7 +10,14 @@ export class HawkmoonCombat extends Combat {
const c = this.combatants.get(cId); const c = this.combatants.get(cId);
console.log("Init for combattant", c, ids) 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 = 0
if (c.actor) {
const combat = c.actor.getCombatValues()
const roll = await new Roll(`1d10 + ${combat.initTotal}`).roll()
await HawkmoonUtility.showDiceSoNice(roll, game.settings.get("core", "rollMode"))
initValue = roll.total
await c.actor.setFlag("world", "last-initiative", initValue)
}
await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initValue } ]); await this.updateEmbeddedDocuments("Combatant", [ { _id: id, initiative: initValue } ]);
} }
+3 -3
View File
@@ -89,7 +89,7 @@ export class HawkmoonCommands {
if (command && command.func) { if (command && command.func) {
const result = command.func(content, msg, params); const result = command.func(content, msg, params);
if (result == false) { if (result == false) {
RdDCommands._chatAnswer(msg, command.descr); HawkmoonCommands._chatAnswer(msg, command.descr);
} }
return true; return true;
} }
@@ -98,8 +98,8 @@ export class HawkmoonCommands {
/* -------------------------------------------- */ /* -------------------------------------------- */
async createChar(msg) { async createChar(msg) {
game.system.Hawkmoon.creator = new HawkmoonActorCreate(); game.system.hawkmoon.creator = new HawkmoonActorCreate();
game.system.Hawkmoon.creator.start(); game.system.hawkmoon.creator.start();
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
+1 -1
View File
@@ -199,7 +199,7 @@ Hooks.on("chatMessage", (html, content, msg) => {
if (content[0] == '/') { if (content[0] == '/') {
let regExp = /(\S+)/g; let regExp = /(\S+)/g;
let commands = content.match(regExp); let commands = content.match(regExp);
if (game.system.mournblade.commands.processChatCommand(commands, content, msg)) { if (game.system.hawkmoon.commands.processChatCommand(commands, content, msg)) {
return false; return false;
} }
} }
+39 -17
View File
@@ -106,8 +106,17 @@ export class HawkmoonUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static updatePauseLogo(html) { static updatePauseLogo(html) {
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp" const validLogos = ["hawkmoon_logo", "logo_pause_resistance", "logo_pause_hawkmoon_stone", "logo_pause_hawkmoon_violet", "logo_pause_hawkmoon_beige", "logo_pause_hawkmoon_rouge"];
console.log("Hawkmoon | Updating pause logo to:", logoPause) let logoName = game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo");
// Validation du nom du logo
if (!validLogos.includes(logoName)) {
console.error("Hawkmoon | Invalid logo name:", logoName);
return;
}
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + logoName + ".webp";
console.log("Hawkmoon | Updating pause logo to:", logoPause);
// Supprimer l'ancien style s'il existe // Supprimer l'ancien style s'il existe
let oldStyle = document.getElementById('hawkmoon-pause-logo-override') let oldStyle = document.getElementById('hawkmoon-pause-logo-override')
@@ -138,13 +147,6 @@ export class HawkmoonUtility {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
static createDirectOptionList(min, max) {
let options = {};
for (let i = min; i <= max; i++) {
options[`${i}`] = `${i}`;
}
return options;
}
static createArrayOptionList(min, max) { static createArrayOptionList(min, max) {
let options = []; let options = [];
for (let i = min; i <= max; i++) { for (let i = min; i <= max; i++) {
@@ -161,8 +163,19 @@ export class HawkmoonUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async loadCompendium(compendium, filter = item => true) { static async loadCompendium(compendium, filter = item => true) {
let compendiumData = await HawkmoonUtility.loadCompendiumData(compendium); const pack = game.packs.get(compendium);
if (!pack) {
console.warn(`Hawkmoon | Compendium not found: ${compendium}`);
return [];
}
try {
const compendiumData = await pack.getDocuments();
return compendiumData.filter(filter); return compendiumData.filter(filter);
} catch (error) {
console.error(`Hawkmoon | Error loading compendium ${compendium}:`, error);
return [];
}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@@ -366,11 +379,17 @@ export class HawkmoonUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static computeResult(rollData) { static computeResult(rollData) {
// Validation des données de roll
if (!rollData.roll?.terms?.[0]?.results?.[0]?.result) {
console.error("Hawkmoon | Invalid roll data:", rollData);
return;
}
rollData.diceResult = rollData.roll.terms[0].results[0].result rollData.diceResult = rollData.roll.terms[0].results[0].result
if (rollData.mainDice.includes("d20")) { if (rollData.mainDice.includes("d20")) {
let diceValue = rollData.roll.terms[0].results[0].result let diceValue = rollData.roll.terms[0].results[0].result
if (diceValue % 2 == 1) { if (diceValue % 2 == 1) {
//console.log("PAIR/IMP2", diceValue) rollData.isD20Impair = true
rollData.finalResult -= rollData.roll.terms[0].results[0].result // Substract value rollData.finalResult -= rollData.roll.terms[0].results[0].result // Substract value
if (diceValue == 1 || diceValue == 11) { if (diceValue == 1 || diceValue == 11) {
rollData.isDramatique = true rollData.isDramatique = true
@@ -379,7 +398,6 @@ export class HawkmoonUtility {
} }
} }
//console.log("Result : ", rollData
this.computeResultQuality(rollData) this.computeResultQuality(rollData)
} }
@@ -395,8 +413,8 @@ export class HawkmoonUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static applyCombativite(rollData, value) { static applyCombativite(rollData, value) {
if (game.user.isGM) { if (game.user.isGM) {
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor let defender = game.canvas.tokens.get(rollData.defenderTokenId)?.actor
defender.changeEtatCombativite(value) defender?.changeEtatCombativite(value)
} else { } else {
game.socket.emit("system.fvtt-hawkmoon-cyd", { msg: "msg_apply_combativite", data: { defenderTokenId: rollData.defenderTokenId, value } }); game.socket.emit("system.fvtt-hawkmoon-cyd", { msg: "msg_apply_combativite", data: { defenderTokenId: rollData.defenderTokenId, value } });
} }
@@ -450,6 +468,9 @@ export class HawkmoonUtility {
rollData.diceFormula += `+${rollData.attr.value}+${rollData.attr2.value}+${rollData.modificateur}` rollData.diceFormula += `+${rollData.attr.value}+${rollData.attr2.value}+${rollData.modificateur}`
} else { } else {
rollData.diceFormula += `+${rollData.attr.value}*${rollData.multiplier}+${rollData.modificateur}` rollData.diceFormula += `+${rollData.attr.value}*${rollData.multiplier}+${rollData.modificateur}`
if (rollData.isInit && rollData.initbonus) {
rollData.diceFormula += `+${rollData.initbonus}`
}
} }
// Bonus arme naturelle en défense // Bonus arme naturelle en défense
@@ -535,8 +556,8 @@ export class HawkmoonUtility {
this.applyCombativite(rollData, rollData.nbCombativitePerdu) this.applyCombativite(rollData, rollData.nbCombativitePerdu)
} }
if (rollData.coupBas && rollData.isSuccess && rollData.defenderTokenId) { if (rollData.coupBas && rollData.isSuccess && rollData.defenderTokenId) {
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor let defender = game.canvas.tokens.get(rollData.defenderTokenId)?.actor
defender.incDecAdversite("bleue", -2) defender?.incDecAdversite("bleue", -2)
} }
} }
@@ -705,7 +726,8 @@ export class HawkmoonUtility {
} }
// Utiliser la cible déjà enregistrée si aucune cible n'est actuellement sélectionnée // Utiliser la cible déjà enregistrée si aucune cible n'est actuellement sélectionnée
if (rollData.defenderTokenId) { if (rollData.defenderTokenId) {
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor let defender = game.canvas.tokens.get(rollData.defenderTokenId)?.actor
if (!defender) return
console.log("updateWithTarget - Defender actor:", defender.name) console.log("updateWithTarget - Defender actor:", defender.name)
rollData.armeDefense = defender.getBestDefenseValue() rollData.armeDefense = defender.getBestDefenseValue()
console.log("updateWithTarget - armeDefense:", rollData.armeDefense) console.log("updateWithTarget - armeDefense:", rollData.armeDefense)
+5 -4
View File
@@ -9,16 +9,17 @@ export default class PersonnageDataModel extends foundry.abstract.TypeDataModel
biodata: new fields.SchemaField({ biodata: new fields.SchemaField({
name: new fields.StringField({ initial: "" }), name: new fields.StringField({ initial: "" }),
age: new fields.NumberField({ initial: 0, integer: true }), age: new fields.NumberField({ initial: 0, integer: true }),
poids: new fields.StringField({ initial: "" }), poids: new fields.StringField({ initial: "70" }),
taille: new fields.StringField({ initial: "" }), taille: new fields.StringField({ initial: "1,80m" }),
cheveux: new fields.StringField({ initial: "" }), cheveux: new fields.StringField({ initial: "Brun" }),
sexe: new fields.StringField({ initial: "" }), sexe: new fields.StringField({ initial: "" }),
yeux: new fields.StringField({ initial: "" }), yeux: new fields.StringField({ initial: "Verts" }),
description: new fields.HTMLField({ initial: "" }), description: new fields.HTMLField({ initial: "" }),
habitat: new fields.HTMLField({ initial: "" }), habitat: new fields.HTMLField({ initial: "" }),
notes: new fields.HTMLField({ initial: "" }), notes: new fields.HTMLField({ initial: "" }),
statut: new fields.StringField({ initial: "" }), statut: new fields.StringField({ initial: "" }),
gmnotes: new fields.HTMLField({ initial: "" }), gmnotes: new fields.HTMLField({ initial: "" }),
mainpreferee: new fields.StringField({ initial: "Droite" }),
statutresistant: new fields.StringField({ initial: "commun" }) statutresistant: new fields.StringField({ initial: "commun" })
}), }),
// Template core // Template core
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000377 MANIFEST-000439
+3 -8
View File
@@ -1,8 +1,3 @@
2026/01/09-17:40:07.997473 7f1c563fe6c0 Recovering log #375 2026/05/06-18:00:14.573290 7fd32a7ed6c0 Recovering log #438
2026/01/09-17:40:08.091717 7f1c563fe6c0 Delete type=0 #375 2026/05/06-18:00:14.583030 7fd32a7ed6c0 Delete type=0 #438
2026/01/09-17:40:08.091792 7f1c563fe6c0 Delete type=3 #373 2026/05/06-18:00:14.583082 7fd32a7ed6c0 Delete type=3 #437
2026/01/09-17:44:28.072757 7f1c54bfb6c0 Level-0 table #380: started
2026/01/09-17:44:28.072827 7f1c54bfb6c0 Level-0 table #380: 0 bytes OK
2026/01/09-17:44:28.079432 7f1c54bfb6c0 Delete type=0 #378
2026/01/09-17:44:28.105106 7f1c54bfb6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2026/01/09-17:44:28.117150 7f1c54bfb6c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
+3 -8
View File
@@ -1,8 +1,3 @@
2026/01/08-08:15:08.713116 7f93ea7fc6c0 Recovering log #371 2026/05/06-17:43:45.593194 7f13097ed6c0 Recovering log #436
2026/01/08-08:15:08.722804 7f93ea7fc6c0 Delete type=3 #369 2026/05/06-17:43:45.603829 7f13097ed6c0 Delete type=0 #436
2026/01/08-08:15:08.722873 7f93ea7fc6c0 Delete type=0 #371 2026/05/06-17:43:45.603909 7f13097ed6c0 Delete type=3 #435
2026/01/08-08:28:05.068912 7f93e9ffb6c0 Level-0 table #376: started
2026/01/08-08:28:05.068957 7f93e9ffb6c0 Level-0 table #376: 0 bytes OK
2026/01/08-08:28:05.106033 7f93e9ffb6c0 Delete type=0 #374
2026/01/08-08:28:05.217659 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
2026/01/08-08:28:05.217719 7f93e9ffb6c0 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.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000376 MANIFEST-000434
+3 -8
View File
@@ -1,8 +1,3 @@
2026/01/09-17:40:07.215100 7f1c563fe6c0 Recovering log #374 2026/05/02-22:53:14.438750 7f09889fd6c0 Recovering log #433
2026/01/09-17:40:07.308808 7f1c563fe6c0 Delete type=0 #374 2026/05/02-22:53:14.491497 7f09889fd6c0 Delete type=0 #433
2026/01/09-17:40:07.308890 7f1c563fe6c0 Delete type=3 #372 2026/05/02-22:53:14.491560 7f09889fd6c0 Delete type=3 #432
2026/01/09-17:44:28.036990 7f1c54bfb6c0 Level-0 table #379: started
2026/01/09-17:44:28.037073 7f1c54bfb6c0 Level-0 table #379: 0 bytes OK
2026/01/09-17:44:28.043547 7f1c54bfb6c0 Delete type=0 #377
2026/01/09-17:44:28.043784 7f1c54bfb6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2026/01/09-17:44:28.043823 7f1c54bfb6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
+3 -8
View File
@@ -1,8 +1,3 @@
2026/01/08-08:15:08.609938 7f93eaffd6c0 Recovering log #370 2026/05/02-22:52:57.748488 7fe282bfe6c0 Recovering log #431
2026/01/08-08:15:08.619765 7f93eaffd6c0 Delete type=3 #368 2026/05/02-22:52:57.803792 7fe282bfe6c0 Delete type=0 #431
2026/01/08-08:15:08.619830 7f93eaffd6c0 Delete type=0 #370 2026/05/02-22:52:57.803902 7fe282bfe6c0 Delete type=3 #430
2026/01/08-08:28:04.844266 7f93e9ffb6c0 Level-0 table #375: started
2026/01/08-08:28:04.844294 7f93e9ffb6c0 Level-0 table #375: 0 bytes OK
2026/01/08-08:28:04.883113 7f93e9ffb6c0 Delete type=0 #373
2026/01/08-08:28:04.919770 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
2026/01/08-08:28:04.919798 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000376 MANIFEST-000426
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/09-17:40:07.033899 7f1c55bfd6c0 Recovering log #374 2026/04/01-23:48:22.821542 7fe6ad3fe6c0 Recovering log #424
2026/01/09-17:40:07.115529 7f1c55bfd6c0 Delete type=0 #374 2026/04/01-23:48:22.831720 7fe6ad3fe6c0 Delete type=3 #422
2026/01/09-17:40:07.115669 7f1c55bfd6c0 Delete type=3 #372 2026/04/01-23:48:22.831773 7fe6ad3fe6c0 Delete type=0 #424
2026/01/09-17:44:28.002424 7f1c54bfb6c0 Level-0 table #379: started 2026/04/01-23:48:49.933594 7fe6977fe6c0 Level-0 table #429: started
2026/01/09-17:44:28.002453 7f1c54bfb6c0 Level-0 table #379: 0 bytes OK 2026/04/01-23:48:49.933618 7fe6977fe6c0 Level-0 table #429: 0 bytes OK
2026/01/09-17:44:28.008591 7f1c54bfb6c0 Delete type=0 #377 2026/04/01-23:48:49.941087 7fe6977fe6c0 Delete type=0 #427
2026/01/09-17:44:28.016607 7f1c54bfb6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end) 2026/04/01-23:48:49.941234 7fe6977fe6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2026/01/09-17:44:28.016651 7f1c54bfb6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/08-08:15:08.584392 7f93eb7fe6c0 Recovering log #370 2026/04/01-23:46:40.104749 7fe697fff6c0 Recovering log #419
2026/01/08-08:15:08.595037 7f93eb7fe6c0 Delete type=3 #368 2026/04/01-23:46:40.156075 7fe697fff6c0 Delete type=3 #417
2026/01/08-08:15:08.595129 7f93eb7fe6c0 Delete type=0 #370 2026/04/01-23:46:40.156217 7fe697fff6c0 Delete type=0 #419
2026/01/08-08:28:04.658126 7f93e9ffb6c0 Level-0 table #375: started 2026/04/01-23:48:06.506267 7fe6977fe6c0 Level-0 table #425: started
2026/01/08-08:28:04.658154 7f93e9ffb6c0 Level-0 table #375: 0 bytes OK 2026/04/01-23:48:06.506290 7fe6977fe6c0 Level-0 table #425: 0 bytes OK
2026/01/08-08:28:04.696322 7f93e9ffb6c0 Delete type=0 #373 2026/04/01-23:48:06.512158 7fe6977fe6c0 Delete type=0 #423
2026/01/08-08:28:04.770719 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end) 2026/04/01-23:48:06.518617 7fe6977fe6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
2026/01/08-08:28:04.770775 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000376 MANIFEST-000426
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/09-17:40:06.860640 7f1c553fc6c0 Recovering log #374 2026/04/01-23:48:22.797623 7fe6ad3fe6c0 Recovering log #424
2026/01/09-17:40:06.945970 7f1c553fc6c0 Delete type=0 #374 2026/04/01-23:48:22.806917 7fe6ad3fe6c0 Delete type=3 #422
2026/01/09-17:40:06.946049 7f1c553fc6c0 Delete type=3 #372 2026/04/01-23:48:22.806976 7fe6ad3fe6c0 Delete type=0 #424
2026/01/09-17:44:27.995662 7f1c54bfb6c0 Level-0 table #379: started 2026/04/01-23:48:49.920356 7fe6977fe6c0 Level-0 table #429: started
2026/01/09-17:44:27.995696 7f1c54bfb6c0 Level-0 table #379: 0 bytes OK 2026/04/01-23:48:49.920405 7fe6977fe6c0 Level-0 table #429: 0 bytes OK
2026/01/09-17:44:28.002283 7f1c54bfb6c0 Delete type=0 #377 2026/04/01-23:48:49.927156 7fe6977fe6c0 Delete type=0 #427
2026/01/09-17:44:28.016595 7f1c54bfb6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end) 2026/04/01-23:48:49.941217 7fe6977fe6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2026/01/09-17:44:28.016641 7f1c54bfb6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/08-08:15:08.560342 7f93eaffd6c0 Recovering log #370 2026/04/01-23:46:39.985628 7fe6acbfd6c0 Recovering log #419
2026/01/08-08:15:08.570307 7f93eaffd6c0 Delete type=3 #368 2026/04/01-23:46:40.048051 7fe6acbfd6c0 Delete type=3 #417
2026/01/08-08:15:08.570398 7f93eaffd6c0 Delete type=0 #370 2026/04/01-23:46:40.048122 7fe6acbfd6c0 Delete type=0 #419
2026/01/08-08:28:04.883258 7f93e9ffb6c0 Level-0 table #375: started 2026/04/01-23:48:06.492888 7fe6977fe6c0 Level-0 table #425: started
2026/01/08-08:28:04.883283 7f93e9ffb6c0 Level-0 table #375: 0 bytes OK 2026/04/01-23:48:06.492949 7fe6977fe6c0 Level-0 table #425: 0 bytes OK
2026/01/08-08:28:04.919585 7f93e9ffb6c0 Delete type=0 #373 2026/04/01-23:48:06.499711 7fe6977fe6c0 Delete type=0 #423
2026/01/08-08:28:04.919781 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end) 2026/04/01-23:48:06.518591 7fe6977fe6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
2026/01/08-08:28:04.919805 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
Binary file not shown.
View File
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000376 MANIFEST-000426
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/09-17:40:07.398683 7f1c55bfd6c0 Recovering log #374 2026/04/01-23:48:22.870211 7fe6acbfd6c0 Recovering log #424
2026/01/09-17:40:07.488253 7f1c55bfd6c0 Delete type=0 #374 2026/04/01-23:48:22.880811 7fe6acbfd6c0 Delete type=3 #422
2026/01/09-17:40:07.488337 7f1c55bfd6c0 Delete type=3 #372 2026/04/01-23:48:22.880863 7fe6acbfd6c0 Delete type=0 #424
2026/01/09-17:44:28.016766 7f1c54bfb6c0 Level-0 table #379: started 2026/04/01-23:48:49.960933 7fe6977fe6c0 Level-0 table #429: started
2026/01/09-17:44:28.016805 7f1c54bfb6c0 Level-0 table #379: 0 bytes OK 2026/04/01-23:48:49.960956 7fe6977fe6c0 Level-0 table #429: 0 bytes OK
2026/01/09-17:44:28.023141 7f1c54bfb6c0 Delete type=0 #377 2026/04/01-23:48:49.967033 7fe6977fe6c0 Delete type=0 #427
2026/01/09-17:44:28.043713 7f1c54bfb6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end) 2026/04/01-23:48:49.967228 7fe6977fe6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2026/01/09-17:44:28.043764 7f1c54bfb6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/08-08:15:08.634608 7f93eb7fe6c0 Recovering log #370 2026/04/01-23:46:40.332623 7fe697fff6c0 Recovering log #419
2026/01/08-08:15:08.644771 7f93eb7fe6c0 Delete type=3 #368 2026/04/01-23:46:40.390008 7fe697fff6c0 Delete type=3 #417
2026/01/08-08:15:08.644849 7f93eb7fe6c0 Delete type=0 #370 2026/04/01-23:46:40.390084 7fe697fff6c0 Delete type=0 #419
2026/01/08-08:28:04.770939 7f93e9ffb6c0 Level-0 table #375: started 2026/04/01-23:48:06.525916 7fe6977fe6c0 Level-0 table #425: started
2026/01/08-08:28:04.770974 7f93e9ffb6c0 Level-0 table #375: 0 bytes OK 2026/04/01-23:48:06.525943 7fe6977fe6c0 Level-0 table #425: 0 bytes OK
2026/01/08-08:28:04.807757 7f93e9ffb6c0 Delete type=0 #373 2026/04/01-23:48:06.532172 7fe6977fe6c0 Delete type=0 #423
2026/01/08-08:28:04.919742 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end) 2026/04/01-23:48:06.544345 7fe6977fe6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
2026/01/08-08:28:04.919789 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
Binary file not shown.
View File
View File
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000376 MANIFEST-000426
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/09-17:40:07.118312 7f1c553fc6c0 Recovering log #374 2026/04/01-23:48:22.833629 7fe6adbff6c0 Recovering log #424
2026/01/09-17:40:07.212316 7f1c553fc6c0 Delete type=0 #374 2026/04/01-23:48:22.843596 7fe6adbff6c0 Delete type=3 #422
2026/01/09-17:40:07.212395 7f1c553fc6c0 Delete type=3 #372 2026/04/01-23:48:22.843651 7fe6adbff6c0 Delete type=0 #424
2026/01/09-17:44:28.008871 7f1c54bfb6c0 Level-0 table #379: started 2026/04/01-23:48:49.927280 7fe6977fe6c0 Level-0 table #429: started
2026/01/09-17:44:28.008958 7f1c54bfb6c0 Level-0 table #379: 0 bytes OK 2026/04/01-23:48:49.927306 7fe6977fe6c0 Level-0 table #429: 0 bytes OK
2026/01/09-17:44:28.016332 7f1c54bfb6c0 Delete type=0 #377 2026/04/01-23:48:49.933442 7fe6977fe6c0 Delete type=0 #427
2026/01/09-17:44:28.016621 7f1c54bfb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end) 2026/04/01-23:48:49.941227 7fe6977fe6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2026/01/09-17:44:28.016661 7f1c54bfb6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/08-08:15:08.597802 7f93ea7fc6c0 Recovering log #370 2026/04/01-23:46:40.158559 7fe6acbfd6c0 Recovering log #419
2026/01/08-08:15:08.607783 7f93ea7fc6c0 Delete type=3 #368 2026/04/01-23:46:40.212288 7fe6acbfd6c0 Delete type=3 #417
2026/01/08-08:15:08.607847 7f93ea7fc6c0 Delete type=0 #370 2026/04/01-23:46:40.212362 7fe6acbfd6c0 Delete type=0 #419
2026/01/08-08:28:04.733376 7f93e9ffb6c0 Level-0 table #375: started 2026/04/01-23:48:06.499942 7fe6977fe6c0 Level-0 table #425: started
2026/01/08-08:28:04.733403 7f93e9ffb6c0 Level-0 table #375: 0 bytes OK 2026/04/01-23:48:06.499977 7fe6977fe6c0 Level-0 table #425: 0 bytes OK
2026/01/08-08:28:04.770489 7f93e9ffb6c0 Delete type=0 #373 2026/04/01-23:48:06.506160 7fe6977fe6c0 Delete type=0 #423
2026/01/08-08:28:04.770754 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end) 2026/04/01-23:48:06.518603 7fe6977fe6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
2026/01/08-08:28:04.770794 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
Binary file not shown.
View File
View File
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000286 MANIFEST-000336
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/09-17:40:06.948771 7f1c563fe6c0 Recovering log #284 2026/04/01-23:48:22.809382 7fe6adbff6c0 Recovering log #334
2026/01/09-17:40:07.030884 7f1c563fe6c0 Delete type=0 #284 2026/04/01-23:48:22.819171 7fe6adbff6c0 Delete type=3 #332
2026/01/09-17:40:07.030949 7f1c563fe6c0 Delete type=3 #282 2026/04/01-23:48:22.819221 7fe6adbff6c0 Delete type=0 #334
2026/01/09-17:44:27.988602 7f1c54bfb6c0 Level-0 table #289: started 2026/04/01-23:48:49.913751 7fe6977fe6c0 Level-0 table #339: started
2026/01/09-17:44:27.988662 7f1c54bfb6c0 Level-0 table #289: 0 bytes OK 2026/04/01-23:48:49.913804 7fe6977fe6c0 Level-0 table #339: 0 bytes OK
2026/01/09-17:44:27.995503 7f1c54bfb6c0 Delete type=0 #287 2026/04/01-23:48:49.920133 7fe6977fe6c0 Delete type=0 #337
2026/01/09-17:44:28.016581 7f1c54bfb6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end) 2026/04/01-23:48:49.941206 7fe6977fe6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2026/01/09-17:44:28.016631 7f1c54bfb6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/08-08:15:08.572263 7f93ebfff6c0 Recovering log #280 2026/04/01-23:46:40.050045 7fe6adbff6c0 Recovering log #329
2026/01/08-08:15:08.581752 7f93ebfff6c0 Delete type=3 #278 2026/04/01-23:46:40.101269 7fe6adbff6c0 Delete type=3 #327
2026/01/08-08:15:08.581804 7f93ebfff6c0 Delete type=0 #280 2026/04/01-23:46:40.101341 7fe6adbff6c0 Delete type=0 #329
2026/01/08-08:28:04.623048 7f93e9ffb6c0 Level-0 table #285: started 2026/04/01-23:48:06.512281 7fe6977fe6c0 Level-0 table #335: started
2026/01/08-08:28:04.623109 7f93e9ffb6c0 Level-0 table #285: 0 bytes OK 2026/04/01-23:48:06.512319 7fe6977fe6c0 Level-0 table #335: 0 bytes OK
2026/01/08-08:28:04.657992 7f93e9ffb6c0 Delete type=0 #283 2026/04/01-23:48:06.518481 7fe6977fe6c0 Delete type=0 #333
2026/01/08-08:28:04.770699 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end) 2026/04/01-23:48:06.518631 7fe6977fe6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
2026/01/08-08:28:04.770767 7f93e9ffb6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
Binary file not shown.
View File
View File
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000376 MANIFEST-000426
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/09-17:40:07.491383 7f1c563fe6c0 Recovering log #374 2026/04/01-23:48:22.883202 7fe6adbff6c0 Recovering log #424
2026/01/09-17:40:07.586434 7f1c563fe6c0 Delete type=0 #374 2026/04/01-23:48:22.893602 7fe6adbff6c0 Delete type=3 #422
2026/01/09-17:40:07.586511 7f1c563fe6c0 Delete type=3 #372 2026/04/01-23:48:22.893656 7fe6adbff6c0 Delete type=0 #424
2026/01/09-17:44:28.051505 7f1c54bfb6c0 Level-0 table #379: started 2026/04/01-23:48:49.954179 7fe6977fe6c0 Level-0 table #429: started
2026/01/09-17:44:28.051547 7f1c54bfb6c0 Level-0 table #379: 0 bytes OK 2026/04/01-23:48:49.954203 7fe6977fe6c0 Level-0 table #429: 0 bytes OK
2026/01/09-17:44:28.058087 7f1c54bfb6c0 Delete type=0 #377 2026/04/01-23:48:49.960785 7fe6977fe6c0 Delete type=0 #427
2026/01/09-17:44:28.072587 7f1c54bfb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end) 2026/04/01-23:48:49.967220 7fe6977fe6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2026/01/09-17:44:28.072630 7f1c54bfb6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/08-08:15:08.648157 7f93ea7fc6c0 Recovering log #370 2026/04/01-23:46:40.392616 7fe6acbfd6c0 Recovering log #419
2026/01/08-08:15:08.657922 7f93ea7fc6c0 Delete type=3 #368 2026/04/01-23:46:40.462121 7fe6acbfd6c0 Delete type=3 #417
2026/01/08-08:15:08.657990 7f93ea7fc6c0 Delete type=0 #370 2026/04/01-23:46:40.462174 7fe6acbfd6c0 Delete type=0 #419
2026/01/08-08:28:04.807939 7f93e9ffb6c0 Level-0 table #375: started 2026/04/01-23:48:06.551385 7fe6977fe6c0 Level-0 table #425: started
2026/01/08-08:28:04.807972 7f93e9ffb6c0 Level-0 table #375: 0 bytes OK 2026/04/01-23:48:06.551410 7fe6977fe6c0 Level-0 table #425: 0 bytes OK
2026/01/08-08:28:04.844126 7f93e9ffb6c0 Delete type=0 #373 2026/04/01-23:48:06.557197 7fe6977fe6c0 Delete type=0 #423
2026/01/08-08:28:04.919757 7f93e9ffb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end) 2026/04/01-23:48:06.570263 7fe6977fe6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
2026/01/08-08:28:04.919814 7f93e9ffb6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
Binary file not shown.
View File
View File
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000376 MANIFEST-000426
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/09-17:40:07.312206 7f1c56bff6c0 Recovering log #374 2026/04/01-23:48:22.858409 7fe6adbff6c0 Recovering log #424
2026/01/09-17:40:07.395670 7f1c56bff6c0 Delete type=0 #374 2026/04/01-23:48:22.868080 7fe6adbff6c0 Delete type=3 #422
2026/01/09-17:40:07.395743 7f1c56bff6c0 Delete type=3 #372 2026/04/01-23:48:22.868150 7fe6adbff6c0 Delete type=0 #424
2026/01/09-17:44:28.030121 7f1c54bfb6c0 Level-0 table #379: started 2026/04/01-23:48:49.947494 7fe6977fe6c0 Level-0 table #429: started
2026/01/09-17:44:28.030156 7f1c54bfb6c0 Level-0 table #379: 0 bytes OK 2026/04/01-23:48:49.947517 7fe6977fe6c0 Level-0 table #429: 0 bytes OK
2026/01/09-17:44:28.036628 7f1c54bfb6c0 Delete type=0 #377 2026/04/01-23:48:49.954038 7fe6977fe6c0 Delete type=0 #427
2026/01/09-17:44:28.043749 7f1c54bfb6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end) 2026/04/01-23:48:49.967209 7fe6977fe6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2026/01/09-17:44:28.043794 7f1c54bfb6c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/08-08:15:08.621917 7f93ebfff6c0 Recovering log #370 2026/04/01-23:46:40.276042 7fe6adbff6c0 Recovering log #419
2026/01/08-08:15:08.632677 7f93ebfff6c0 Delete type=3 #368 2026/04/01-23:46:40.330456 7fe6adbff6c0 Delete type=3 #417
2026/01/08-08:15:08.632727 7f93ebfff6c0 Delete type=0 #370 2026/04/01-23:46:40.330513 7fe6adbff6c0 Delete type=0 #419
2026/01/08-08:28:04.696491 7f93e9ffb6c0 Level-0 table #375: started 2026/04/01-23:48:06.518741 7fe6977fe6c0 Level-0 table #425: started
2026/01/08-08:28:04.696521 7f93e9ffb6c0 Level-0 table #375: 0 bytes OK 2026/04/01-23:48:06.518815 7fe6977fe6c0 Level-0 table #425: 0 bytes OK
2026/01/08-08:28:04.733225 7f93e9ffb6c0 Delete type=0 #373 2026/04/01-23:48:06.525794 7fe6977fe6c0 Delete type=0 #423
2026/01/08-08:28:04.770736 7f93e9ffb6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end) 2026/04/01-23:48:06.544334 7fe6977fe6c0 Manual compaction at level-0 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
2026/01/08-08:28:04.770784 7f93e9ffb6c0 Manual compaction at level-1 from '!items!16iPa2yIzB0V3pxb' @ 72057594037927935 : 1 .. '!items!yszkersMTE4p9VzP' @ 0 : 0; will stop at (end)
Binary file not shown.
View File
View File
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000215 MANIFEST-000265
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/09-17:40:07.897787 7f1c55bfd6c0 Recovering log #213 2026/04/01-23:48:22.933544 7fe6adbff6c0 Recovering log #263
2026/01/09-17:40:07.993513 7f1c55bfd6c0 Delete type=0 #213 2026/04/01-23:48:22.943164 7fe6adbff6c0 Delete type=3 #261
2026/01/09-17:40:07.993589 7f1c55bfd6c0 Delete type=3 #211 2026/04/01-23:48:22.943213 7fe6adbff6c0 Delete type=0 #263
2026/01/09-17:44:28.065440 7f1c54bfb6c0 Level-0 table #218: started 2026/04/01-23:48:49.987688 7fe6977fe6c0 Level-0 table #268: started
2026/01/09-17:44:28.065531 7f1c54bfb6c0 Level-0 table #218: 0 bytes OK 2026/04/01-23:48:49.987713 7fe6977fe6c0 Level-0 table #268: 0 bytes OK
2026/01/09-17:44:28.072412 7f1c54bfb6c0 Delete type=0 #216 2026/04/01-23:48:49.994129 7fe6977fe6c0 Delete type=0 #266
2026/01/09-17:44:28.072612 7f1c54bfb6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end) 2026/04/01-23:48:49.994269 7fe6977fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2026/01/09-17:44:28.072640 7f1c54bfb6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
+7 -8
View File
@@ -1,8 +1,7 @@
2026/01/08-08:15:08.698526 7f93ebfff6c0 Recovering log #209 2026/04/01-23:46:40.645467 7fe6acbfd6c0 Recovering log #259
2026/01/08-08:15:08.709578 7f93ebfff6c0 Delete type=3 #207 2026/04/01-23:46:40.699745 7fe6acbfd6c0 Delete type=3 #257
2026/01/08-08:15:08.709656 7f93ebfff6c0 Delete type=0 #209 2026/04/01-23:46:40.699811 7fe6acbfd6c0 Delete type=0 #259
2026/01/08-08:28:05.031270 7f93e9ffb6c0 Level-0 table #214: started 2026/04/01-23:48:06.557277 7fe6977fe6c0 Level-0 table #264: started
2026/01/08-08:28:05.031324 7f93e9ffb6c0 Level-0 table #214: 0 bytes OK 2026/04/01-23:48:06.557303 7fe6977fe6c0 Level-0 table #264: 0 bytes OK
2026/01/08-08:28:05.068560 7f93e9ffb6c0 Delete type=0 #212 2026/04/01-23:48:06.563213 7fe6977fe6c0 Delete type=0 #262
2026/01/08-08:28:05.068827 7f93e9ffb6c0 Manual compaction at level-0 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end) 2026/04/01-23:48:06.570272 7fe6977fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
2026/01/08-08:28:05.068856 7f93e9ffb6c0 Manual compaction at level-1 from '!scenes!VOzC5ey4qi1C34MY' @ 72057594037927935 : 1 .. '!scenes!mfosNsLsHN5Pf4TO' @ 0 : 0; will stop at (end)
Binary file not shown.
View File
View File
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000372 MANIFEST-000420
+7 -7
View File
@@ -1,7 +1,7 @@
2026/01/09-17:40:07.797094 7f1c563fe6c0 Recovering log #370 2026/04/01-23:48:22.921132 7fe6acbfd6c0 Recovering log #418
2026/01/09-17:40:07.894005 7f1c563fe6c0 Delete type=0 #370 2026/04/01-23:48:22.931374 7fe6acbfd6c0 Delete type=3 #416
2026/01/09-17:40:07.894111 7f1c563fe6c0 Delete type=3 #368 2026/04/01-23:48:22.931423 7fe6acbfd6c0 Delete type=0 #418
2026/01/09-17:44:28.058315 7f1c54bfb6c0 Level-0 table #375: started 2026/04/01-23:48:49.967348 7fe6977fe6c0 Level-0 table #423: started
2026/01/09-17:44:28.058367 7f1c54bfb6c0 Level-0 table #375: 0 bytes OK 2026/04/01-23:48:49.967391 7fe6977fe6c0 Level-0 table #423: 0 bytes OK
2026/01/09-17:44:28.065182 7f1c54bfb6c0 Delete type=0 #373 2026/04/01-23:48:49.974582 7fe6977fe6c0 Delete type=0 #421
2026/01/09-17:44:28.072600 7f1c54bfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2026/04/01-23:48:49.994242 7fe6977fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
+7 -7
View File
@@ -1,7 +1,7 @@
2026/01/08-08:15:08.685888 7f93ea7fc6c0 Recovering log #366 2026/04/01-23:46:40.588821 7fe697fff6c0 Recovering log #414
2026/01/08-08:15:08.695712 7f93ea7fc6c0 Delete type=3 #364 2026/04/01-23:46:40.643051 7fe697fff6c0 Delete type=3 #412
2026/01/08-08:15:08.695810 7f93ea7fc6c0 Delete type=0 #366 2026/04/01-23:46:40.643109 7fe697fff6c0 Delete type=0 #414
2026/01/08-08:28:04.994881 7f93e9ffb6c0 Level-0 table #371: started 2026/04/01-23:48:06.563337 7fe6977fe6c0 Level-0 table #419: started
2026/01/08-08:28:04.994911 7f93e9ffb6c0 Level-0 table #371: 0 bytes OK 2026/04/01-23:48:06.563366 7fe6977fe6c0 Level-0 table #419: 0 bytes OK
2026/01/08-08:28:05.031074 7f93e9ffb6c0 Delete type=0 #369 2026/04/01-23:48:06.570149 7fe6977fe6c0 Delete type=0 #417
2026/01/08-08:28:05.068816 7f93e9ffb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2026/04/01-23:48:06.570290 7fe6977fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
Binary file not shown.
View File

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