Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 05ca6e1763 | |||
| d3f014fcca | |||
| 679b3208cd | |||
| 871a18a0ee | |||
| 264c49eb06 | |||
| 9349c54966 | |||
| 274efac2b5 | |||
| 7a7398f8ca | |||
| 93600f7e13 | |||
| a6fa3afbee | |||
| 1051349dd0 | |||
| a245b0e87c | |||
| c9ce3367ed | |||
| e95e068112 | |||
| 6dd63a2c54 | |||
| 650e4b7449 | |||
| 3f27482ad9 | |||
| 436b282ff5 | |||
| 39f8cfdbcc | |||
| 24a57a906e | |||
| 667f3678fb | |||
| d5dd9e5bf7 | |||
| 3403b72d1f | |||
| 8a4487c833 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -7,7 +7,7 @@ import { HawkmoonUtility } from "./hawkmoon-utility.js";
|
|||||||
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class HawkmoonActorSheet extends ActorSheet {
|
export class HawkmoonActorSheet extends foundry.appv1.sheets.ActorSheet {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
@@ -56,8 +56,8 @@ export class HawkmoonActorSheet extends ActorSheet {
|
|||||||
nbCombativite: this.actor.system.sante.nbcombativite,
|
nbCombativite: this.actor.system.sante.nbcombativite,
|
||||||
combativiteList: HawkmoonUtility.getCombativiteList(this.actor.system.sante.nbcombativite),
|
combativiteList: HawkmoonUtility.getCombativiteList(this.actor.system.sante.nbcombativite),
|
||||||
initiative: this.actor.getFlag("world", "last-initiative") || -1,
|
initiative: this.actor.getFlag("world", "last-initiative") || -1,
|
||||||
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
|
description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, {async: true}),
|
||||||
habitat: await TextEditor.enrichHTML(this.object.system.biodata.habitat, {async: true}),
|
habitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.habitat, {async: true}),
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
|
|||||||
@@ -67,6 +67,10 @@ export class HawkmoonActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
prepareArme(arme) {
|
prepareArme(arme) {
|
||||||
|
if (this.type == "cellule") {
|
||||||
|
return arme
|
||||||
|
}
|
||||||
|
|
||||||
arme = foundry.utils.duplicate(arme)
|
arme = foundry.utils.duplicate(arme)
|
||||||
let combat = this.getCombatValues()
|
let combat = this.getCombatValues()
|
||||||
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
|
if (arme.system.typearme == "contact" || arme.system.typearme == "contactjet") {
|
||||||
@@ -202,6 +206,20 @@ export class HawkmoonActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCombatValues() {
|
getCombatValues() {
|
||||||
|
if (this.type == "cellule") {
|
||||||
|
return {
|
||||||
|
initBase: 0,
|
||||||
|
initTotal: 0,
|
||||||
|
bonusDegats: 0,
|
||||||
|
bonusDegatsTotal: 0,
|
||||||
|
vitesseBase: 0,
|
||||||
|
vitesseTotal: 0,
|
||||||
|
defenseBase: 0,
|
||||||
|
protection: 0,
|
||||||
|
defenseTotal: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let combat = {
|
let combat = {
|
||||||
initBase: this.system.attributs.adr.value,
|
initBase: this.system.attributs.adr.value,
|
||||||
initTotal: this.system.attributs.adr.value + this.system.combat.initbonus,
|
initTotal: this.system.attributs.adr.value + this.system.combat.initbonus,
|
||||||
@@ -406,7 +424,7 @@ export class HawkmoonActor extends Actor {
|
|||||||
if (sante.etat == this.system.sante.nbcombativite) {
|
if (sante.etat == this.system.sante.nbcombativite) {
|
||||||
ChatMessage.create({ content: `<strong>${this.name} est vaincu !</strong>` })
|
ChatMessage.create({ content: `<strong>${this.name} est vaincu !</strong>` })
|
||||||
}
|
}
|
||||||
this.processCombativite(sante)
|
// Duplicated ! this.processCombativite(sante)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -525,6 +543,23 @@ export class HawkmoonActor extends Actor {
|
|||||||
return init || -1
|
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() {
|
getBestDefenseValue() {
|
||||||
let defenseList = this.items.filter(item => (item.type == "arme") && item.system.equipped)
|
let defenseList = this.items.filter(item => (item.type == "arme") && item.system.equipped)
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import { HawkmoonUtility } from "./hawkmoon-utility.js";
|
|||||||
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
import { HawkmoonAutomation } from "./hawkmoon-automation.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const __ALLOWED_ITEM_CELLULE = { "talent": 1, "ressource": 1, "contact": 1}
|
const __ALLOWED_ITEM_CELLULE = { "talent": 1, "ressource": 1, "contact": 1, "equipement": 1, "protection": 1, "artefact": 1, "arme": 1, "monnaie": 1 }
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
export class HawkmoonCelluleSheet extends ActorSheet {
|
export class HawkmoonCelluleSheet extends foundry.appv1.sheets.ActorSheet {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
@@ -45,6 +45,13 @@ export class HawkmoonCelluleSheet extends ActorSheet {
|
|||||||
ressources: foundry.utils.duplicate(this.actor.getRessources()),
|
ressources: foundry.utils.duplicate(this.actor.getRessources()),
|
||||||
contacts: foundry.utils.duplicate(this.actor.getContacts()),
|
contacts: foundry.utils.duplicate(this.actor.getContacts()),
|
||||||
members: this.getMembers(),
|
members: this.getMembers(),
|
||||||
|
equipements: foundry.utils.duplicate(this.actor.getEquipments()),
|
||||||
|
artefacts: foundry.utils.duplicate(this.actor.getArtefacts()),
|
||||||
|
armes: foundry.utils.duplicate(this.actor.getWeapons()),
|
||||||
|
monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
|
||||||
|
protections: foundry.utils.duplicate(this.actor.getArmors()),
|
||||||
|
richesse: this.actor.computeRichesse(),
|
||||||
|
valeurEquipement: this.actor.computeValeurEquipement(),
|
||||||
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
@@ -110,15 +117,15 @@ export class HawkmoonCelluleSheet extends ActorSheet {
|
|||||||
let value = ev.currentTarget.value
|
let value = ev.currentTarget.value
|
||||||
this.actor.editItemField(itemId, itemType, itemField, dataType, value)
|
this.actor.editItemField(itemId, itemType, itemField, dataType, value)
|
||||||
})
|
})
|
||||||
|
html.find('.quantity-modify').click(event => {
|
||||||
html.find('.quantity-minus').click(event => {
|
const li = $(event.currentTarget).parents(".item")
|
||||||
const li = $(event.currentTarget).parents(".item");
|
const value = Number($(event.currentTarget).data("quantite-value"))
|
||||||
this.actor.incDecQuantity(li.data("item-id"), -1);
|
this.actor.incDecQuantity( li.data("item-id"), value );
|
||||||
});
|
})
|
||||||
html.find('.quantity-plus').click(event => {
|
html.find('.item-add').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item");
|
const itemType = $(event.currentTarget).data("type")
|
||||||
this.actor.incDecQuantity(li.data("item-id"), +1);
|
this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
|
||||||
});
|
})
|
||||||
|
|
||||||
html.find('.lock-unlock-sheet').click((event) => {
|
html.find('.lock-unlock-sheet').click((event) => {
|
||||||
this.options.editScore = !this.options.editScore;
|
this.options.editScore = !this.options.editScore;
|
||||||
@@ -149,7 +156,7 @@ export class HawkmoonCelluleSheet extends ActorSheet {
|
|||||||
super._onDropItem(event, dragData)
|
super._onDropItem(event, dragData)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ui.notifications("Ce type d'item n'est pas autorisé sur une Cellule.")
|
ui.notification.info("Ce type d'item n'est pas autorisé sur une Cellule.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,30 @@ export const HAWKMOON_CONFIG = {
|
|||||||
optionsDifficulte: [
|
optionsDifficulte: [
|
||||||
{ key: "0", label: "Aucune/Inconnue" },
|
{ key: "0", label: "Aucune/Inconnue" },
|
||||||
{ key: "5", label: "Facile (5)" },
|
{ 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: "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: "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: "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: "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)" }
|
{ key: "30", label: "Pure Folie (30)" }
|
||||||
],
|
],
|
||||||
optionsDistanceTir: [
|
optionsDistanceTir: [
|
||||||
@@ -15,6 +35,12 @@ export const HAWKMOON_CONFIG = {
|
|||||||
{ key: "porteelongue", label: "Longue ({protectionDefenseur}+14)" }
|
{ key: "porteelongue", label: "Longue ({protectionDefenseur}+14)" }
|
||||||
],
|
],
|
||||||
optionsBonusMalus: [
|
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: "-4", label: "-4" },
|
||||||
{ key: "-3", label: "-3" },
|
{ key: "-3", label: "-3" },
|
||||||
{ key: "-2", label: "-2" },
|
{ key: "-2", label: "-2" },
|
||||||
@@ -23,7 +49,13 @@ export const HAWKMOON_CONFIG = {
|
|||||||
{ key: "1", label: "+1" },
|
{ key: "1", label: "+1" },
|
||||||
{ key: "2", label: "+2" },
|
{ key: "2", label: "+2" },
|
||||||
{ key: "3", label: "+3" },
|
{ key: "3", label: "+3" },
|
||||||
{ key: "4", label: "+4" }
|
{ 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: [
|
optionsTailleCible: [
|
||||||
{ key: "normal", label: "Normal (SD+0)" },
|
{ key: "normal", label: "Normal (SD+0)" },
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export class HawkmoonTokenHud {
|
|||||||
|
|
||||||
const hudData = { actor: actor }
|
const hudData = { actor: actor }
|
||||||
|
|
||||||
const controlIconActions = html.find('.control-icon[data-action=combat]');
|
const controlIconActions = $(html).find('.control-icon[data-action=combat]');
|
||||||
// initiative
|
// initiative
|
||||||
await HawkmoonTokenHud._configureSubMenu(controlIconActions, 'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html', hudData,
|
await HawkmoonTokenHud._configureSubMenu(controlIconActions, 'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html', hudData,
|
||||||
(event) => {
|
(event) => {
|
||||||
@@ -34,7 +34,7 @@ export class HawkmoonTokenHud {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async addTokenHudExtensions(app, html, tokenId) {
|
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 ) {
|
if (controlIconCombat.length>0 ) {
|
||||||
HawkmoonTokenHud.addExtensionHud(app, html, tokenId);
|
HawkmoonTokenHud.addExtensionHud(app, html, tokenId);
|
||||||
}
|
}
|
||||||
@@ -42,7 +42,7 @@ export class HawkmoonTokenHud {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async _configureSubMenu(insertionPoint, template, hudData, onMenuItem) {
|
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')
|
const list = hud.find('div.hawkmoon-hud-list')
|
||||||
|
|
||||||
HawkmoonTokenHud._toggleHudListActive(hud, list);
|
HawkmoonTokenHud._toggleHudListActive(hud, list);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { HawkmoonUtility } from "./hawkmoon-utility.js";
|
|||||||
* Extend the basic ItemSheet with some very simple modifications
|
* Extend the basic ItemSheet with some very simple modifications
|
||||||
* @extends {ItemSheet}
|
* @extends {ItemSheet}
|
||||||
*/
|
*/
|
||||||
export class HawkmoonItemSheet extends ItemSheet {
|
export class HawkmoonItemSheet extends foundry.appv1.sheets.ItemSheet {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
|
|||||||
@@ -56,14 +56,14 @@ Hooks.once("init", async function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
// Register sheet application classes
|
// Regster sheet application classes
|
||||||
Actors.unregisterSheet("core", ActorSheet);
|
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
||||||
Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonActorSheet, { types: ["personnage"], makeDefault: true })
|
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonActorSheet, { types: ["personnage"], makeDefault: true })
|
||||||
Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCreatureSheet, { types: ["creature"], makeDefault: true })
|
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCreatureSheet, { types: ["creature"], makeDefault: true })
|
||||||
Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCelluleSheet, { types: ["cellule"], makeDefault: true });
|
foundry.documents.collections.Actors.registerSheet("fvtt-hawkmoon-cyd", HawkmoonCelluleSheet, { types: ["cellule"], makeDefault: true });
|
||||||
|
|
||||||
Items.unregisterSheet("core", ItemSheet);
|
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
|
||||||
Items.registerSheet("fvtt-hawkmoon-cyd", HawkmoonItemSheet, { makeDefault: true })
|
foundry.documents.collections.Items.registerSheet("fvtt-hawkmoon-cyd", HawkmoonItemSheet, { makeDefault: true })
|
||||||
|
|
||||||
HawkmoonUtility.init()
|
HawkmoonUtility.init()
|
||||||
HawkmoonAutomation.init()
|
HawkmoonAutomation.init()
|
||||||
@@ -138,4 +138,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ export class HawkmoonRollDialog extends Dialog {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async create(actor, rollData) {
|
static async create(actor, rollData) {
|
||||||
|
|
||||||
let options = { classes: ["HawkmoonDialog"], width: 320, height: 'fit-content', 'z-index': 99999 };
|
let options = { classes: ["HawkmoonDialog"], width: 420, 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);
|
return new HawkmoonRollDialog(actor, rollData, html, options);
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,8 @@ export class HawkmoonRollDialog extends Dialog {
|
|||||||
icon: '<i class="fas fa-times"></i>',
|
icon: '<i class="fas fa-times"></i>',
|
||||||
label: "Annuler",
|
label: "Annuler",
|
||||||
callback: () => { this.close() }
|
callback: () => { this.close() }
|
||||||
} },
|
}
|
||||||
|
},
|
||||||
close: close
|
close: close
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+60
-26
@@ -15,8 +15,7 @@ export class HawkmoonUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async init() {
|
static async init() {
|
||||||
Hooks.on('renderChatLog', (log, html, data) => HawkmoonUtility.chatListeners(html))
|
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) => {
|
Hooks.on("getCombatTrackerEntryContext", (html, options) => {
|
||||||
HawkmoonUtility.pushInitiativeOptions(html, options);
|
HawkmoonUtility.pushInitiativeOptions(html, options);
|
||||||
})
|
})
|
||||||
@@ -105,15 +104,33 @@ export class HawkmoonUtility {
|
|||||||
return this.skills
|
return this.skills
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static updatePauseLogo(html) {
|
||||||
|
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp"
|
||||||
|
console.log("Hawkmoon | Updating pause logo to:", logoPause)
|
||||||
|
|
||||||
|
// Supprimer l'ancien style s'il existe
|
||||||
|
let oldStyle = document.getElementById('hawkmoon-pause-logo-override')
|
||||||
|
if (oldStyle) {
|
||||||
|
oldStyle.remove()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Injecter une règle CSS pour override le logo
|
||||||
|
let styleSheet = document.createElement('style')
|
||||||
|
styleSheet.id = 'hawkmoon-pause-logo-override'
|
||||||
|
styleSheet.textContent = `#pause>img { content: url(${logoPause}) !important; }`
|
||||||
|
document.head.appendChild(styleSheet)
|
||||||
|
|
||||||
|
console.log("Hawkmoon | Logo CSS rule injected")
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async ready() {
|
static async ready() {
|
||||||
const skills = await HawkmoonUtility.loadCompendium("fvtt-hawkmoon-cyd.skills")
|
const skills = await HawkmoonUtility.loadCompendium("fvtt-hawkmoon-cyd.skills")
|
||||||
this.skills = skills.map(i => i.toObject())
|
this.skills = skills.map(i => i.toObject())
|
||||||
|
|
||||||
// Setup pause logo
|
// Setup pause logo
|
||||||
let logoPause = "systems/fvtt-hawkmoon-cyd/assets/logos/" + game.settings.get("fvtt-hawkmoon-cyd", "hawkmoon-pause-logo") + ".webp"
|
this.updatePauseLogo()
|
||||||
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.listeNiveauSkill = this.createDirectOptionList(0, 10)
|
||||||
game.system.hawkmoon.config.listeNiveauCreature = this.createDirectOptionList(0, 35)
|
game.system.hawkmoon.config.listeNiveauCreature = this.createDirectOptionList(0, 35)
|
||||||
@@ -155,7 +172,7 @@ export class HawkmoonUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async chatListeners(html) {
|
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 predIdx = $(event.currentTarget).data("predilection-index")
|
||||||
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
@@ -166,14 +183,14 @@ export class HawkmoonUtility {
|
|||||||
HawkmoonUtility.rollHawkmoon(rollData)
|
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 messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
let rollData = message.getFlag("world", "hawkmoon-roll")
|
let rollData = message.getFlag("world", "hawkmoon-roll")
|
||||||
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
||||||
actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData)
|
actor.rollArmeDegats(rollData.arme._id, rollData.targetVigueur, rollData)
|
||||||
})
|
})
|
||||||
html.on("click", '.roll-chat-degat-devastateur', async event => {
|
$(html).on("click", '.roll-chat-degat-devastateur', async event => {
|
||||||
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
let messageId = HawkmoonUtility.findChatMessageId(event.currentTarget)
|
||||||
let message = game.messages.get(messageId)
|
let message = game.messages.get(messageId)
|
||||||
let rollData = message.getFlag("world", "hawkmoon-roll")
|
let rollData = message.getFlag("world", "hawkmoon-roll")
|
||||||
@@ -196,7 +213,7 @@ export class HawkmoonUtility {
|
|||||||
'systems/fvtt-hawkmoon-cyd/templates/partial-automation.html',
|
'systems/fvtt-hawkmoon-cyd/templates/partial-automation.html',
|
||||||
'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html',
|
'systems/fvtt-hawkmoon-cyd/templates/hud-adversites.html',
|
||||||
]
|
]
|
||||||
return loadTemplates(templatePaths);
|
return foundry.applications.handlebars.loadTemplates(templatePaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@@ -279,9 +296,13 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static onSocketMesssage(msg) {
|
static onSocketMesssage(msg) {
|
||||||
if (msg.name == "msg_apply_combativite") {
|
if (msg.msg == "msg_apply_combativite") {
|
||||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
let defender = game.canvas.tokens.get(msg.data.defenderTokenId)?.actor
|
||||||
|
if (defender) {
|
||||||
defender.changeEtatCombativite(msg.data.value)
|
defender.changeEtatCombativite(msg.data.value)
|
||||||
|
} else {
|
||||||
|
console.warn("HawkmoonUtility.onSocketMesssage : Impossible de trouver le token pour appliquer la combativité", msg.defenderTokenId)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,14 +376,19 @@ export class HawkmoonUtility {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//console.log("Result : ", rollData)
|
//console.log("Result : ", rollData
|
||||||
|
this.computeResultQuality(rollData)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static computeResultQuality(rollData) {
|
||||||
if (rollData.difficulte > 0 && !rollData.isDramatique) {
|
if (rollData.difficulte > 0 && !rollData.isDramatique) {
|
||||||
rollData.isSuccess = (rollData.finalResult >= rollData.difficulte)
|
rollData.isSuccess = (rollData.finalResult >= rollData.difficulte)
|
||||||
rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10)
|
rollData.isHeroique = ((rollData.finalResult - rollData.difficulte) >= 10)
|
||||||
rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10)
|
rollData.isDramatique = ((rollData.finalResult - rollData.difficulte) <= -10)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static applyCombativite(rollData, value) {
|
static applyCombativite(rollData, value) {
|
||||||
if (game.user.isGM) {
|
if (game.user.isGM) {
|
||||||
@@ -432,10 +458,10 @@ export class HawkmoonUtility {
|
|||||||
rollData.diceFormula += `+3`
|
rollData.diceFormula += `+3`
|
||||||
}
|
}
|
||||||
if (rollData.hasAmbidextre) {
|
if (rollData.hasAmbidextre) {
|
||||||
if ( rollData.attaqueAmbidextre1) {
|
if (rollData.ambidextre1) {
|
||||||
rollData.diceFormula += `-3`
|
rollData.diceFormula += `-3`
|
||||||
} else if ( rollData.attaqueAmbidextre2) {
|
} else if (rollData.ambidextre2) {
|
||||||
rollData.diceFormula += `-5`
|
rollData.diceFormula += `-6`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (rollData.defenseurAuSol) {
|
if (rollData.defenseurAuSol) {
|
||||||
@@ -500,7 +526,7 @@ export class HawkmoonUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
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)
|
}, rollData)
|
||||||
|
|
||||||
if ((rollData.coupBas || rollData.arme) && rollData.isSuccess && rollData.defenderTokenId) {
|
if ((rollData.coupBas || rollData.arme) && rollData.isSuccess && rollData.defenderTokenId) {
|
||||||
@@ -527,17 +553,22 @@ export class HawkmoonUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async bonusRollHawkmoon(rollData) {
|
static async bonusRollHawkmoon(rollData) {
|
||||||
rollData.bonusFormula = rollData.addedBonus
|
rollData.bonusFormula = rollData.addedBonus
|
||||||
|
console.log("Bonus Roll Hawkmoon", rollData.bonusFormula)
|
||||||
|
|
||||||
|
if (!Number(rollData.bonusFormula)) {
|
||||||
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
|
let bonusRoll = await new Roll(rollData.bonusFormula).roll()
|
||||||
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
|
||||||
rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
|
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.computeResultQuality(rollData)
|
||||||
|
|
||||||
this.computeResult(rollData)
|
|
||||||
|
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
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)
|
}, rollData)
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -663,6 +694,7 @@ export class HawkmoonUtility {
|
|||||||
rollData.defenderTokenId = target.id
|
rollData.defenderTokenId = target.id
|
||||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
||||||
rollData.armeDefense = defender.getBestDefenseValue()
|
rollData.armeDefense = defender.getBestDefenseValue()
|
||||||
|
rollData.armeAttaqueDefenseur = defender.getBestAttackValue()
|
||||||
rollData.targetVigueur = defender.getVigueur()
|
rollData.targetVigueur = defender.getVigueur()
|
||||||
rollData.protectionDefenseur = defender.getProtection()
|
rollData.protectionDefenseur = defender.getProtection()
|
||||||
if (rollData.immobiliser || rollData.repousser) {
|
if (rollData.immobiliser || rollData.repousser) {
|
||||||
@@ -673,6 +705,8 @@ export class HawkmoonUtility {
|
|||||||
rollData.difficulte = combatValues.defenseTotal
|
rollData.difficulte = combatValues.defenseTotal
|
||||||
} else if (rollData.assomer) {
|
} else if (rollData.assomer) {
|
||||||
rollData.difficulte = 3 + (defender.system.attributs.tre.value * 2)
|
rollData.difficulte = 3 + (defender.system.attributs.tre.value * 2)
|
||||||
|
} else if (rollData.desengager) {
|
||||||
|
rollData.difficulte = rollData.armeAttaqueDefenseur?.system?.totalOffensif || 0;
|
||||||
} else if (rollData.armeDefense) {
|
} else if (rollData.armeDefense) {
|
||||||
rollData.difficulte = rollData.armeDefense.system.totalDefensif
|
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) {
|
||||||
@@ -693,7 +727,7 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static applyBonneAventureRoll(li, changed, addedBonus) {
|
static applyBonneAventureRoll(li, changed, addedBonus) {
|
||||||
let msgId = li.data("message-id")
|
let msgId = $(li).data("message-id")
|
||||||
let msg = game.messages.get(msgId)
|
let msg = game.messages.get(msgId)
|
||||||
if (msg) {
|
if (msg) {
|
||||||
let rollData = msg.getFlag("world", "hawkmoon-roll")
|
let rollData = msg.getFlag("world", "hawkmoon-roll")
|
||||||
@@ -712,7 +746,7 @@ export class HawkmoonUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static applyEclatRoll(li, changed, addedBonus) {
|
static applyEclatRoll(li, changed, addedBonus) {
|
||||||
let msgId = li.data("message-id")
|
let msgId = $(li).data("message-id")
|
||||||
let msg = game.messages.get(msgId)
|
let msg = game.messages.get(msgId)
|
||||||
if (msg) {
|
if (msg) {
|
||||||
let rollData = msg.getFlag("world", "hawkmoon-roll")
|
let rollData = msg.getFlag("world", "hawkmoon-roll")
|
||||||
@@ -733,13 +767,13 @@ export class HawkmoonUtility {
|
|||||||
static chatRollMenu(html, options) {
|
static chatRollMenu(html, options) {
|
||||||
let canApply = li => canvas.tokens.controlled.length && li.find(".hawkmoon-roll").length
|
let canApply = li => canvas.tokens.controlled.length && li.find(".hawkmoon-roll").length
|
||||||
let canApplyBA = function (li) {
|
let canApplyBA = function (li) {
|
||||||
let message = game.messages.get(li.attr("data-message-id"))
|
let message = game.messages.get($(li).attr("data-message-id"))
|
||||||
let rollData = message.getFlag("world", "hawkmoon-roll")
|
let rollData = message.getFlag("world", "hawkmoon-roll")
|
||||||
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
||||||
return (!rollData.isReroll && actor.getBonneAventure() > 0)
|
return (!rollData.isReroll && actor.getBonneAventure() > 0)
|
||||||
}
|
}
|
||||||
let canApplyPE = function (li) {
|
let canApplyPE = function (li) {
|
||||||
let message = game.messages.get(li.attr("data-message-id"))
|
let message = game.messages.get($(li).attr("data-message-id"))
|
||||||
let rollData = message.getFlag("world", "hawkmoon-roll")
|
let rollData = message.getFlag("world", "hawkmoon-roll")
|
||||||
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
let actor = HawkmoonUtility.getActorFromRollData(rollData)
|
||||||
return (!rollData.isReroll && actor.getEclat() > 0)
|
return (!rollData.isReroll && actor.getEclat() > 0)
|
||||||
@@ -765,7 +799,7 @@ export class HawkmoonUtility {
|
|||||||
name: "Relancer le dé (1 point d'Eclat)",
|
name: "Relancer le dé (1 point d'Eclat)",
|
||||||
icon: "<i class='fas fa-user-plus'></i>",
|
icon: "<i class='fas fa-user-plus'></i>",
|
||||||
condition: canApply && canApplyPE,
|
condition: canApply && canApplyPE,
|
||||||
callback: li => HawkmoonUtility.applyEclatRoll(li, -3, "reroll")
|
callback: li => HawkmoonUtility.applyEclatRoll(li, -1, "reroll")
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
return options
|
return options
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les armes
|
||||||
|
*/
|
||||||
|
export class ArmeDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false }),
|
||||||
|
typearme: new fields.StringField({ initial: "" }),
|
||||||
|
armenaturelle: new fields.BooleanField({ initial: false }),
|
||||||
|
armefortune: new fields.BooleanField({ initial: false }),
|
||||||
|
bonusmaniementoff: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
seuildefense: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
onlevelonly: new fields.BooleanField({ initial: false }),
|
||||||
|
degats: new fields.StringField({ initial: "" }),
|
||||||
|
deuxmains: new fields.BooleanField({ initial: false }),
|
||||||
|
percearmure: new fields.BooleanField({ initial: false }),
|
||||||
|
percearmurevalue: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
courte: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
moyenne: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
longue: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
tr: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les artefacts
|
||||||
|
*/
|
||||||
|
export class ArtefactDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false }),
|
||||||
|
complexite: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
branche: new fields.StringField({ initial: "" }),
|
||||||
|
branche2: new fields.StringField({ initial: "none" }),
|
||||||
|
dureerealisation: new fields.StringField({ initial: "" }),
|
||||||
|
tempsroute: new fields.StringField({ initial: "" }),
|
||||||
|
effetdejeu: new fields.StringField({ initial: "" }),
|
||||||
|
defautcourant: new fields.StringField({ initial: "" }),
|
||||||
|
autrescarac: new fields.StringField({ initial: "" }),
|
||||||
|
avantagespossibles: new fields.StringField({ initial: "" }),
|
||||||
|
avantages: new fields.StringField({ initial: "" }),
|
||||||
|
competences: new fields.StringField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/**
|
||||||
|
* Template de base pour tous les items
|
||||||
|
*/
|
||||||
|
export class BaseItemModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Template pour les équipements de base
|
||||||
|
*/
|
||||||
|
export class BaseEquipItemModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Template pour l'automatisation
|
||||||
|
*/
|
||||||
|
export class AutomationItemModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
isautomated: new fields.BooleanField({ initial: false }),
|
||||||
|
automations: new fields.ArrayField(
|
||||||
|
new fields.SchemaField({
|
||||||
|
id: new fields.StringField({ initial: "" }),
|
||||||
|
eventtype: new fields.StringField({ initial: "on-drop" }),
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
bonusname: new fields.StringField({ initial: "vigueur" }),
|
||||||
|
bonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
competence: new fields.StringField({ initial: "" }),
|
||||||
|
minLevel: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
baCost: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
{ initial: [] }
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les cellules
|
||||||
|
*/
|
||||||
|
export class CelluleDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
notoriete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
resistance: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
developpement: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
members: new fields.ArrayField(new fields.StringField(), { initial: [] }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les compétences
|
||||||
|
*/
|
||||||
|
export class CompetenceDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
niveau: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
attribut1: new fields.StringField({ initial: "" }),
|
||||||
|
attribut2: new fields.StringField({ initial: "" }),
|
||||||
|
attribut3: new fields.StringField({ initial: "" }),
|
||||||
|
doublebonus: new fields.BooleanField({ initial: false }),
|
||||||
|
predilections: new fields.ArrayField(
|
||||||
|
new fields.SchemaField({
|
||||||
|
id: new fields.StringField({ initial: "" }),
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.StringField({ initial: "" }),
|
||||||
|
acquise: new fields.BooleanField({ initial: false }),
|
||||||
|
maitrise: new fields.BooleanField({ initial: false }),
|
||||||
|
used: new fields.BooleanField({ initial: false })
|
||||||
|
}),
|
||||||
|
{ initial: [] }
|
||||||
|
)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les contacts
|
||||||
|
*/
|
||||||
|
export class ContactDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
contacttype: new fields.StringField({ initial: "" }),
|
||||||
|
niveau: new fields.StringField({ initial: "" }),
|
||||||
|
pointdev: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les créatures
|
||||||
|
*/
|
||||||
|
export class CreatureDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
// Template biodata
|
||||||
|
biodata: new fields.SchemaField({
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
age: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
poids: new fields.StringField({ initial: "" }),
|
||||||
|
taille: new fields.StringField({ initial: "" }),
|
||||||
|
cheveux: new fields.StringField({ initial: "" }),
|
||||||
|
sexe: new fields.StringField({ initial: "" }),
|
||||||
|
yeux: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.StringField({ initial: "" }),
|
||||||
|
habitat: new fields.StringField({ initial: "" }),
|
||||||
|
notes: new fields.StringField({ initial: "" }),
|
||||||
|
statut: new fields.StringField({ initial: "" }),
|
||||||
|
gmnotes: new fields.StringField({ initial: "" }),
|
||||||
|
statutresistant: new fields.StringField({ initial: "commun" })
|
||||||
|
}),
|
||||||
|
// Template core
|
||||||
|
subactors: new fields.ArrayField(new fields.StringField(), { initial: [] }),
|
||||||
|
attributs: new fields.SchemaField({
|
||||||
|
adr: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Adresse" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "adresse" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "adr" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
pui: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Puissance" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "puissance" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "pui" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
cla: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Clairvoyance" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "clairvoyance" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "cla" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
pre: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Présence" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "presence" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "pre" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
tre: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Trempe" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "trempe" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "tre" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
bonneaventure: new fields.SchemaField({
|
||||||
|
base: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
actuelle: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
experience: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
eclat: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
sante: new fields.SchemaField({
|
||||||
|
vigueur: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
etat: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
vigueurmodifier: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
nbcombativite: new fields.NumberField({ initial: 5, integer: true })
|
||||||
|
}),
|
||||||
|
adversite: new fields.SchemaField({
|
||||||
|
bleue: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rouge: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
noire: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
vitesse: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
combat: new fields.SchemaField({
|
||||||
|
initbonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
vitessebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
bonusdegats: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
attaquebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
defensebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
defensetotale: new fields.BooleanField({ initial: false }),
|
||||||
|
monte: new fields.BooleanField({ initial: false })
|
||||||
|
}),
|
||||||
|
// Propriétés spécifiques aux créatures
|
||||||
|
ressources: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
})
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour l'équipement
|
||||||
|
*/
|
||||||
|
export class EquipementDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les historiques
|
||||||
|
*/
|
||||||
|
export class HistoriqueDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
bonusmalus: new fields.StringField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* Index des DataModels pour Hawkmoon CYD
|
||||||
|
* Ce fichier centralise tous les exports des modèles de données
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Modèles d'items
|
||||||
|
export { TalentDataModel } from './talent.mjs';
|
||||||
|
export { HistoriqueDataModel } from './historique.mjs';
|
||||||
|
export { ProfilDataModel } from './profil.mjs';
|
||||||
|
export { CompetenceDataModel } from './competence.mjs';
|
||||||
|
export { ArmeDataModel } from './arme.mjs';
|
||||||
|
export { ProtectionDataModel } from './protection.mjs';
|
||||||
|
export { MonnaieDataModel } from './monnaie.mjs';
|
||||||
|
export { EquipementDataModel } from './equipement.mjs';
|
||||||
|
export { ArtefactDataModel } from './artefact.mjs';
|
||||||
|
export { RessourceDataModel } from './ressource.mjs';
|
||||||
|
export { ContactDataModel } from './contact.mjs';
|
||||||
|
export { MutationDataModel } from './mutation.mjs';
|
||||||
|
|
||||||
|
// Modèles d'acteurs
|
||||||
|
export { PersonnageDataModel } from './personnage.mjs';
|
||||||
|
export { CelluleDataModel } from './cellule.mjs';
|
||||||
|
export { CreatureDataModel } from './creature.mjs';
|
||||||
|
|
||||||
|
// Templates de base (si nécessaire pour extension)
|
||||||
|
export { BaseItemModel, BaseEquipItemModel, AutomationItemModel } from './base-item.mjs';
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les monnaies
|
||||||
|
*/
|
||||||
|
export class MonnaieDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les mutations
|
||||||
|
*/
|
||||||
|
export class MutationDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
mutationcategorie: new fields.StringField({ initial: "tares_communes" }),
|
||||||
|
hascomplexite: new fields.BooleanField({ initial: false }),
|
||||||
|
complexite: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les personnages
|
||||||
|
*/
|
||||||
|
export class PersonnageDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
// Template biodata
|
||||||
|
biodata: new fields.SchemaField({
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
age: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
poids: new fields.StringField({ initial: "" }),
|
||||||
|
taille: new fields.StringField({ initial: "" }),
|
||||||
|
cheveux: new fields.StringField({ initial: "" }),
|
||||||
|
sexe: new fields.StringField({ initial: "" }),
|
||||||
|
yeux: new fields.StringField({ initial: "" }),
|
||||||
|
description: new fields.StringField({ initial: "" }),
|
||||||
|
habitat: new fields.StringField({ initial: "" }),
|
||||||
|
notes: new fields.StringField({ initial: "" }),
|
||||||
|
statut: new fields.StringField({ initial: "" }),
|
||||||
|
gmnotes: new fields.StringField({ initial: "" }),
|
||||||
|
statutresistant: new fields.StringField({ initial: "commun" })
|
||||||
|
}),
|
||||||
|
// Template core
|
||||||
|
subactors: new fields.ArrayField(new fields.StringField(), { initial: [] }),
|
||||||
|
attributs: new fields.SchemaField({
|
||||||
|
adr: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Adresse" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "adresse" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "adr" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
pui: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Puissance" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "puissance" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "pui" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
cla: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Clairvoyance" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "clairvoyance" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "cla" }),
|
||||||
|
value: new fields.NumberField({ initial: 1, integer: true })
|
||||||
|
}),
|
||||||
|
pre: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Présence" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "presence" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "pre" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
tre: new fields.SchemaField({
|
||||||
|
label: new fields.StringField({ initial: "Trempe" }),
|
||||||
|
labelnorm: new fields.StringField({ initial: "trempe" }),
|
||||||
|
abbrev: new fields.StringField({ initial: "tre" }),
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
bonneaventure: new fields.SchemaField({
|
||||||
|
base: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
actuelle: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
experience: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
eclat: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
sante: new fields.SchemaField({
|
||||||
|
vigueur: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
etat: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
vigueurmodifier: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
nbcombativite: new fields.NumberField({ initial: 5, integer: true })
|
||||||
|
}),
|
||||||
|
adversite: new fields.SchemaField({
|
||||||
|
bleue: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rouge: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
noire: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
vitesse: new fields.SchemaField({
|
||||||
|
value: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
combat: new fields.SchemaField({
|
||||||
|
initbonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
vitessebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
bonusdegats: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
attaquebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
defensebonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
defensetotale: new fields.BooleanField({ initial: false }),
|
||||||
|
monte: new fields.BooleanField({ initial: false })
|
||||||
|
})
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les profils
|
||||||
|
*/
|
||||||
|
export class ProfilDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
exemples: new fields.StringField({ initial: "" }),
|
||||||
|
attribut1: new fields.StringField({ initial: "" }),
|
||||||
|
attribut2: new fields.StringField({ initial: "" }),
|
||||||
|
attribut3: new fields.StringField({ initial: "" }),
|
||||||
|
competences: new fields.StringField({ initial: "" }),
|
||||||
|
talentsinitie: new fields.StringField({ initial: "" }),
|
||||||
|
prerequisaguerri: new fields.StringField({ initial: "" }),
|
||||||
|
talentsaguerri: new fields.StringField({ initial: "" }),
|
||||||
|
prerequismaitre: new fields.StringField({ initial: "" }),
|
||||||
|
talentsmaitre: new fields.StringField({ initial: "" }),
|
||||||
|
celluleinfo: new fields.StringField({ initial: "" }),
|
||||||
|
equipement: new fields.StringField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les protections
|
||||||
|
*/
|
||||||
|
export class ProtectionDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
prixpo: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixca: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
prixsc: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
rarete: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
quantite: new fields.NumberField({ initial: 1, integer: true }),
|
||||||
|
equipped: new fields.BooleanField({ initial: false }),
|
||||||
|
protection: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
adversitepoids: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les ressources
|
||||||
|
*/
|
||||||
|
export class RessourceDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
pointdev: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
description: new fields.HTMLField({ initial: "" })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* Data model pour les talents
|
||||||
|
*/
|
||||||
|
export class TalentDataModel extends foundry.abstract.TypeDataModel {
|
||||||
|
static defineSchema() {
|
||||||
|
const fields = foundry.data.fields;
|
||||||
|
return {
|
||||||
|
description: new fields.HTMLField({ initial: "" }),
|
||||||
|
isautomated: new fields.BooleanField({ initial: false }),
|
||||||
|
automations: new fields.ArrayField(
|
||||||
|
new fields.SchemaField({
|
||||||
|
id: new fields.StringField({ initial: "" }),
|
||||||
|
eventtype: new fields.StringField({ initial: "on-drop" }),
|
||||||
|
name: new fields.StringField({ initial: "" }),
|
||||||
|
bonusname: new fields.StringField({ initial: "vigueur" }),
|
||||||
|
bonus: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
competence: new fields.StringField({ initial: "" }),
|
||||||
|
minLevel: new fields.NumberField({ initial: 0, integer: true }),
|
||||||
|
baCost: new fields.NumberField({ initial: 0, integer: true })
|
||||||
|
}),
|
||||||
|
{ initial: [] }
|
||||||
|
),
|
||||||
|
talenttype: new fields.StringField({ initial: "" }),
|
||||||
|
utilisation: new fields.StringField({ initial: "" }),
|
||||||
|
prerequis: new fields.StringField({ initial: "" }),
|
||||||
|
resumebonus: new fields.StringField({ initial: "" }),
|
||||||
|
used: new fields.BooleanField({ initial: false })
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000222
|
MANIFEST-000333
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/06/15-23:28:57.160525 7f479cc006c0 Recovering log #219
|
2026/01/05-22:20:56.155164 7f93eb7fe6c0 Recovering log #331
|
||||||
2024/06/15-23:28:57.171818 7f479cc006c0 Delete type=3 #217
|
2026/01/05-22:20:56.166270 7f93eb7fe6c0 Delete type=3 #329
|
||||||
2024/06/15-23:28:57.171870 7f479cc006c0 Delete type=0 #219
|
2026/01/05-22:20:56.166327 7f93eb7fe6c0 Delete type=0 #331
|
||||||
2024/06/15-23:30:57.795030 7f479a4006c0 Level-0 table #225: started
|
2026/01/05-22:39:51.165703 7f93e9ffb6c0 Level-0 table #336: started
|
||||||
2024/06/15-23:30:57.795056 7f479a4006c0 Level-0 table #225: 0 bytes OK
|
2026/01/05-22:39:51.165730 7f93e9ffb6c0 Level-0 table #336: 0 bytes OK
|
||||||
2024/06/15-23:30:57.850629 7f479a4006c0 Delete type=0 #223
|
2026/01/05-22:39:51.171765 7f93e9ffb6c0 Delete type=0 #334
|
||||||
2024/06/15-23:30:57.850776 7f479a4006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.199079 7f93e9ffb6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:30:57.850790 7f479a4006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.199117 7f93e9ffb6c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
2024/06/15-23:24:42.765938 7f479b8006c0 Recovering log #215
|
2025/11/21-21:17:11.288531 7f34ccff96c0 Recovering log #327
|
||||||
2024/06/15-23:24:42.776438 7f479b8006c0 Delete type=3 #213
|
2025/11/21-21:17:11.303357 7f34ccff96c0 Delete type=3 #325
|
||||||
2024/06/15-23:24:42.776492 7f479b8006c0 Delete type=0 #215
|
2025/11/21-21:17:11.303441 7f34ccff96c0 Delete type=0 #327
|
||||||
2024/06/15-23:25:26.495744 7f479a4006c0 Level-0 table #220: started
|
2025/11/21-21:20:34.182000 7f322ffff6c0 Level-0 table #332: started
|
||||||
2024/06/15-23:25:26.500186 7f479a4006c0 Level-0 table #220: 41204 bytes OK
|
2025/11/21-21:20:34.182040 7f322ffff6c0 Level-0 table #332: 0 bytes OK
|
||||||
2024/06/15-23:25:26.506315 7f479a4006c0 Delete type=0 #218
|
2025/11/21-21:20:34.189103 7f322ffff6c0 Delete type=0 #330
|
||||||
2024/06/15-23:25:26.517184 7f479a4006c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.199156 7f322ffff6c0 Manual compaction at level-0 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.529740 7f479a4006c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 11 : 1
|
2025/11/21-21:20:34.220809 7f322ffff6c0 Manual compaction at level-1 from '!journal!MUbViCE2PkVxlzqe' @ 72057594037927935 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.529746 7f479a4006c0 Compacting 1@1 + 1@2 files
|
|
||||||
2024/06/15-23:25:26.533740 7f479a4006c0 Generated table #221@1: 4 keys, 41204 bytes
|
|
||||||
2024/06/15-23:25:26.533758 7f479a4006c0 Compacted 1@1 + 1@2 files => 41204 bytes
|
|
||||||
2024/06/15-23:25:26.539879 7f479a4006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2024/06/15-23:25:26.540007 7f479a4006c0 Delete type=2 #164
|
|
||||||
2024/06/15-23:25:26.540130 7f479a4006c0 Delete type=2 #220
|
|
||||||
2024/06/15-23:25:26.551592 7f479a4006c0 Manual compaction at level-1 from '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 11 : 1 .. '!journal.pages!gVybbv17TFY8o3Y4.fQidyqfF1TbsZKHM' @ 0 : 0; will stop at (end)
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
|||||||
MANIFEST-000222
|
MANIFEST-000332
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2024/06/15-23:28:57.056793 7f479c2006c0 Recovering log #219
|
2026/01/05-22:20:56.048400 7f93eaffd6c0 Recovering log #330
|
||||||
2024/06/15-23:28:57.067408 7f479c2006c0 Delete type=3 #217
|
2026/01/05-22:20:56.058614 7f93eaffd6c0 Delete type=3 #328
|
||||||
2024/06/15-23:28:57.067481 7f479c2006c0 Delete type=0 #219
|
2026/01/05-22:20:56.058678 7f93eaffd6c0 Delete type=0 #330
|
||||||
2024/06/15-23:30:56.946158 7f479a4006c0 Level-0 table #225: started
|
2026/01/05-22:39:51.125881 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/06/15-23:30:56.946226 7f479a4006c0 Level-0 table #225: 0 bytes OK
|
2026/01/05-22:39:51.125907 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/06/15-23:30:57.023329 7f479a4006c0 Delete type=0 #223
|
2026/01/05-22:39:51.131746 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/06/15-23:30:57.270050 7f479a4006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137885 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:30:57.270076 7f479a4006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137919 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
+8
-15
@@ -1,15 +1,8 @@
|
|||||||
2024/06/15-23:24:42.647919 7f479cc006c0 Recovering log #215
|
2025/11/21-21:17:11.119952 7f34cd7fa6c0 Recovering log #326
|
||||||
2024/06/15-23:24:42.658287 7f479cc006c0 Delete type=3 #213
|
2025/11/21-21:17:11.135840 7f34cd7fa6c0 Delete type=3 #324
|
||||||
2024/06/15-23:24:42.658374 7f479cc006c0 Delete type=0 #215
|
2025/11/21-21:17:11.135940 7f34cd7fa6c0 Delete type=0 #326
|
||||||
2024/06/15-23:25:26.375347 7f479a4006c0 Level-0 table #220: started
|
2025/11/21-21:20:34.115063 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/06/15-23:25:26.378560 7f479a4006c0 Level-0 table #220: 14080 bytes OK
|
2025/11/21-21:20:34.115090 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/06/15-23:25:26.384735 7f479a4006c0 Delete type=0 #218
|
2025/11/21-21:20:34.121038 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/06/15-23:25:26.394725 7f479a4006c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.121241 7f322ffff6c0 Manual compaction at level-0 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.414915 7f479a4006c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at '!items!wxrzP3NyiHiYnAMJ' @ 147 : 1
|
2025/11/21-21:20:34.121271 7f322ffff6c0 Manual compaction at level-1 from '!items!0fit7HelSjaFtXcW' @ 72057594037927935 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.414920 7f479a4006c0 Compacting 1@1 + 1@2 files
|
|
||||||
2024/06/15-23:25:26.418236 7f479a4006c0 Generated table #221@1: 49 keys, 14080 bytes
|
|
||||||
2024/06/15-23:25:26.418263 7f479a4006c0 Compacted 1@1 + 1@2 files => 14080 bytes
|
|
||||||
2024/06/15-23:25:26.424226 7f479a4006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2024/06/15-23:25:26.424323 7f479a4006c0 Delete type=2 #164
|
|
||||||
2024/06/15-23:25:26.424432 7f479a4006c0 Delete type=2 #220
|
|
||||||
2024/06/15-23:25:26.435530 7f479a4006c0 Manual compaction at level-1 from '!items!wxrzP3NyiHiYnAMJ' @ 147 : 1 .. '!items!wxrzP3NyiHiYnAMJ' @ 0 : 0; will stop at (end)
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000222
|
MANIFEST-000332
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/06/15-23:28:57.031534 7f479cc006c0 Recovering log #219
|
2026/01/05-22:20:56.023009 7f93eb7fe6c0 Recovering log #330
|
||||||
2024/06/15-23:28:57.041093 7f479cc006c0 Delete type=3 #217
|
2026/01/05-22:20:56.032779 7f93eb7fe6c0 Delete type=3 #328
|
||||||
2024/06/15-23:28:57.041142 7f479cc006c0 Delete type=0 #219
|
2026/01/05-22:20:56.032853 7f93eb7fe6c0 Delete type=0 #330
|
||||||
2024/06/15-23:30:56.657491 7f479a4006c0 Level-0 table #225: started
|
2026/01/05-22:39:51.087705 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/06/15-23:30:56.657545 7f479a4006c0 Level-0 table #225: 0 bytes OK
|
2026/01/05-22:39:51.087797 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/06/15-23:30:56.729291 7f479a4006c0 Delete type=0 #223
|
2026/01/05-22:39:51.094096 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/06/15-23:30:56.945946 7f479a4006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112531 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:30:56.946001 7f479a4006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112576 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
2024/06/15-23:24:42.621971 7f479b8006c0 Recovering log #215
|
2025/11/21-21:17:11.082663 7f34ccff96c0 Recovering log #326
|
||||||
2024/06/15-23:24:42.632781 7f479b8006c0 Delete type=3 #213
|
2025/11/21-21:17:11.097415 7f34ccff96c0 Delete type=3 #324
|
||||||
2024/06/15-23:24:42.632847 7f479b8006c0 Delete type=0 #215
|
2025/11/21-21:17:11.097522 7f34ccff96c0 Delete type=0 #326
|
||||||
2024/06/15-23:25:26.293519 7f479a4006c0 Level-0 table #220: started
|
2025/11/21-21:20:34.082672 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/06/15-23:25:26.296877 7f479a4006c0 Level-0 table #220: 7080 bytes OK
|
2025/11/21-21:20:34.082698 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/06/15-23:25:26.303812 7f479a4006c0 Delete type=0 #218
|
2025/11/21-21:20:34.088631 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/06/15-23:25:26.314853 7f479a4006c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094927 7f322ffff6c0 Manual compaction at level-0 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.335642 7f479a4006c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at '!items!tFU5yISK6spdNWco' @ 24 : 1
|
2025/11/21-21:20:34.094971 7f322ffff6c0 Manual compaction at level-1 from '!items!0nhTxujlIUB63Aqt' @ 72057594037927935 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.335663 7f479a4006c0 Compacting 1@1 + 1@2 files
|
|
||||||
2024/06/15-23:25:26.338945 7f479a4006c0 Generated table #221@1: 8 keys, 7080 bytes
|
|
||||||
2024/06/15-23:25:26.338968 7f479a4006c0 Compacted 1@1 + 1@2 files => 7080 bytes
|
|
||||||
2024/06/15-23:25:26.344833 7f479a4006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2024/06/15-23:25:26.344929 7f479a4006c0 Delete type=2 #164
|
|
||||||
2024/06/15-23:25:26.345039 7f479a4006c0 Delete type=2 #220
|
|
||||||
2024/06/15-23:25:26.356140 7f479a4006c0 Manual compaction at level-1 from '!items!tFU5yISK6spdNWco' @ 24 : 1 .. '!items!tFU5yISK6spdNWco' @ 0 : 0; will stop at (end)
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000222
|
MANIFEST-000332
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/06/15-23:28:57.003981 7f479c2006c0 Recovering log #219
|
2026/01/05-22:20:55.998572 7f93ea7fc6c0 Recovering log #330
|
||||||
2024/06/15-23:28:57.014420 7f479c2006c0 Delete type=3 #217
|
2026/01/05-22:20:56.008503 7f93ea7fc6c0 Delete type=3 #328
|
||||||
2024/06/15-23:28:57.014473 7f479c2006c0 Delete type=0 #219
|
2026/01/05-22:20:56.008556 7f93ea7fc6c0 Delete type=0 #330
|
||||||
2024/06/15-23:30:56.876144 7f479a4006c0 Level-0 table #225: started
|
2026/01/05-22:39:51.100430 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/06/15-23:30:56.876196 7f479a4006c0 Level-0 table #225: 0 bytes OK
|
2026/01/05-22:39:51.100453 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/06/15-23:30:56.945798 7f479a4006c0 Delete type=0 #223
|
2026/01/05-22:39:51.106283 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/06/15-23:30:56.945988 7f479a4006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112557 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:30:56.946013 7f479a4006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112589 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
2024/06/15-23:24:42.592284 7f479cc006c0 Recovering log #215
|
2025/11/21-21:17:11.044217 7f34ce7fc6c0 Recovering log #326
|
||||||
2024/06/15-23:24:42.602371 7f479cc006c0 Delete type=3 #213
|
2025/11/21-21:17:11.059351 7f34ce7fc6c0 Delete type=3 #324
|
||||||
2024/06/15-23:24:42.602472 7f479cc006c0 Delete type=0 #215
|
2025/11/21-21:17:11.059409 7f34ce7fc6c0 Delete type=0 #326
|
||||||
2024/06/15-23:25:26.283662 7f479a4006c0 Level-0 table #220: started
|
2025/11/21-21:20:34.076024 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/06/15-23:25:26.286998 7f479a4006c0 Level-0 table #220: 16617 bytes OK
|
2025/11/21-21:20:34.076057 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/06/15-23:25:26.293338 7f479a4006c0 Delete type=0 #218
|
2025/11/21-21:20:34.082546 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/06/15-23:25:26.314844 7f479a4006c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094915 7f322ffff6c0 Manual compaction at level-0 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.324985 7f479a4006c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at '!items!yI1zY5k8mAdx9wHK' @ 45 : 1
|
2025/11/21-21:20:34.094962 7f322ffff6c0 Manual compaction at level-1 from '!items!15IDGG6JoZnRCQtY' @ 72057594037927935 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.324991 7f479a4006c0 Compacting 1@1 + 1@2 files
|
|
||||||
2024/06/15-23:25:26.328976 7f479a4006c0 Generated table #221@1: 15 keys, 16617 bytes
|
|
||||||
2024/06/15-23:25:26.329003 7f479a4006c0 Compacted 1@1 + 1@2 files => 16617 bytes
|
|
||||||
2024/06/15-23:25:26.335185 7f479a4006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2024/06/15-23:25:26.335327 7f479a4006c0 Delete type=2 #164
|
|
||||||
2024/06/15-23:25:26.335523 7f479a4006c0 Delete type=2 #220
|
|
||||||
2024/06/15-23:25:26.356120 7f479a4006c0 Manual compaction at level-1 from '!items!yI1zY5k8mAdx9wHK' @ 45 : 1 .. '!items!yI1zY5k8mAdx9wHK' @ 0 : 0; will stop at (end)
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000222
|
MANIFEST-000332
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/06/15-23:28:57.081145 7f479cc006c0 Recovering log #219
|
2026/01/05-22:20:56.073305 7f93eb7fe6c0 Recovering log #330
|
||||||
2024/06/15-23:28:57.092539 7f479cc006c0 Delete type=3 #217
|
2026/01/05-22:20:56.084269 7f93eb7fe6c0 Delete type=3 #328
|
||||||
2024/06/15-23:28:57.092616 7f479cc006c0 Delete type=0 #219
|
2026/01/05-22:20:56.084336 7f93eb7fe6c0 Delete type=0 #330
|
||||||
2024/06/15-23:30:57.023529 7f479a4006c0 Level-0 table #225: started
|
2026/01/05-22:39:51.112726 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/06/15-23:30:57.023569 7f479a4006c0 Level-0 table #225: 0 bytes OK
|
2026/01/05-22:39:51.112760 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/06/15-23:30:57.097544 7f479a4006c0 Delete type=0 #223
|
2026/01/05-22:39:51.119133 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/06/15-23:30:57.270060 7f479a4006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137862 7f93e9ffb6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:30:57.270101 7f479a4006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137903 7f93e9ffb6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
2024/06/15-23:24:42.675126 7f479b8006c0 Recovering log #215
|
2025/11/21-21:17:11.157103 7f34ce7fc6c0 Recovering log #326
|
||||||
2024/06/15-23:24:42.685268 7f479b8006c0 Delete type=3 #213
|
2025/11/21-21:17:11.172875 7f34ce7fc6c0 Delete type=3 #324
|
||||||
2024/06/15-23:24:42.685329 7f479b8006c0 Delete type=0 #215
|
2025/11/21-21:17:11.172939 7f34ce7fc6c0 Delete type=0 #326
|
||||||
2024/06/15-23:25:26.365494 7f479a4006c0 Level-0 table #220: started
|
2025/11/21-21:20:34.095092 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/06/15-23:25:26.368781 7f479a4006c0 Level-0 table #220: 32801 bytes OK
|
2025/11/21-21:20:34.095126 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/06/15-23:25:26.375217 7f479a4006c0 Delete type=0 #218
|
2025/11/21-21:20:34.102295 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/06/15-23:25:26.394718 7f479a4006c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.121183 7f322ffff6c0 Manual compaction at level-0 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.404124 7f479a4006c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at '!items!zYx0Ak2y1LNTcKlO' @ 453 : 1
|
2025/11/21-21:20:34.121249 7f322ffff6c0 Manual compaction at level-1 from '!items!0BopmCu8vGK2923j' @ 72057594037927935 : 1 .. '!items!zYx0Ak2y1LNTcKlO' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.404130 7f479a4006c0 Compacting 1@1 + 1@2 files
|
|
||||||
2024/06/15-23:25:26.408017 7f479a4006c0 Generated table #221@1: 151 keys, 32801 bytes
|
|
||||||
2024/06/15-23:25:26.408039 7f479a4006c0 Compacted 1@1 + 1@2 files => 32801 bytes
|
|
||||||
2024/06/15-23:25:26.414631 7f479a4006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2024/06/15-23:25:26.414726 7f479a4006c0 Delete type=2 #164
|
|
||||||
2024/06/15-23:25:26.414840 7f479a4006c0 Delete type=2 #220
|
|
||||||
2024/06/15-23:25:26.424507 7f479a4006c0 Manual compaction at level-1 from '!items!zYx0Ak2y1LNTcKlO' @ 453 : 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.
@@ -1 +1 @@
|
|||||||
MANIFEST-000222
|
MANIFEST-000332
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2024/06/15-23:28:57.043886 7f479d6006c0 Recovering log #219
|
2026/01/05-22:20:56.034759 7f93ea7fc6c0 Recovering log #330
|
||||||
2024/06/15-23:28:57.054533 7f479d6006c0 Delete type=3 #217
|
2026/01/05-22:20:56.045303 7f93ea7fc6c0 Delete type=3 #328
|
||||||
2024/06/15-23:28:57.054591 7f479d6006c0 Delete type=0 #219
|
2026/01/05-22:20:56.045387 7f93ea7fc6c0 Delete type=0 #330
|
||||||
2024/06/15-23:30:56.729405 7f479a4006c0 Level-0 table #225: started
|
2026/01/05-22:39:51.094206 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/06/15-23:30:56.729427 7f479a4006c0 Level-0 table #225: 0 bytes OK
|
2026/01/05-22:39:51.094228 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/06/15-23:30:56.800493 7f479a4006c0 Delete type=0 #223
|
2026/01/05-22:39:51.100330 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/06/15-23:30:56.945957 7f479a4006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112546 7f93e9ffb6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:30:56.945995 7f479a4006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112583 7f93e9ffb6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,15 +1,8 @@
|
|||||||
2024/06/15-23:24:42.635253 7f479c2006c0 Recovering log #215
|
2025/11/21-21:17:11.100312 7f34ce7fc6c0 Recovering log #326
|
||||||
2024/06/15-23:24:42.645121 7f479c2006c0 Delete type=3 #213
|
2025/11/21-21:17:11.117500 7f34ce7fc6c0 Delete type=3 #324
|
||||||
2024/06/15-23:24:42.645182 7f479c2006c0 Delete type=0 #215
|
2025/11/21-21:17:11.117567 7f34ce7fc6c0 Delete type=0 #326
|
||||||
2024/06/15-23:25:26.303948 7f479a4006c0 Level-0 table #220: started
|
2025/11/21-21:20:34.069446 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/06/15-23:25:26.308108 7f479a4006c0 Level-0 table #220: 19910 bytes OK
|
2025/11/21-21:20:34.069505 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/06/15-23:25:26.314670 7f479a4006c0 Delete type=0 #218
|
2025/11/21-21:20:34.075899 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/06/15-23:25:26.314861 7f479a4006c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094892 7f322ffff6c0 Manual compaction at level-0 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.345096 7f479a4006c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at '!items!z1HtkvazCGHut7cz' @ 144 : 1
|
2025/11/21-21:20:34.094951 7f322ffff6c0 Manual compaction at level-1 from '!items!15foLG7y3LUXNzkK' @ 72057594037927935 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.345106 7f479a4006c0 Compacting 1@1 + 1@2 files
|
|
||||||
2024/06/15-23:25:26.348628 7f479a4006c0 Generated table #221@1: 48 keys, 19910 bytes
|
|
||||||
2024/06/15-23:25:26.348654 7f479a4006c0 Compacted 1@1 + 1@2 files => 19910 bytes
|
|
||||||
2024/06/15-23:25:26.355550 7f479a4006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2024/06/15-23:25:26.355724 7f479a4006c0 Delete type=2 #164
|
|
||||||
2024/06/15-23:25:26.355949 7f479a4006c0 Delete type=2 #220
|
|
||||||
2024/06/15-23:25:26.356178 7f479a4006c0 Manual compaction at level-1 from '!items!z1HtkvazCGHut7cz' @ 144 : 1 .. '!items!z1HtkvazCGHut7cz' @ 0 : 0; will stop at (end)
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000132
|
MANIFEST-000242
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2024/06/15-23:28:57.017180 7f479b8006c0 Recovering log #129
|
2026/01/05-22:20:56.010250 7f93eaffd6c0 Recovering log #240
|
||||||
2024/06/15-23:28:57.028451 7f479b8006c0 Delete type=3 #127
|
2026/01/05-22:20:56.020208 7f93eaffd6c0 Delete type=3 #238
|
||||||
2024/06/15-23:28:57.028607 7f479b8006c0 Delete type=0 #129
|
2026/01/05-22:20:56.020270 7f93eaffd6c0 Delete type=0 #240
|
||||||
2024/06/15-23:30:56.800624 7f479a4006c0 Level-0 table #135: started
|
2026/01/05-22:39:51.106439 7f93e9ffb6c0 Level-0 table #245: started
|
||||||
2024/06/15-23:30:56.800652 7f479a4006c0 Level-0 table #135: 0 bytes OK
|
2026/01/05-22:39:51.106472 7f93e9ffb6c0 Level-0 table #245: 0 bytes OK
|
||||||
2024/06/15-23:30:56.875914 7f479a4006c0 Delete type=0 #133
|
2026/01/05-22:39:51.112404 7f93e9ffb6c0 Delete type=0 #243
|
||||||
2024/06/15-23:30:56.945968 7f479a4006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112570 7f93e9ffb6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:30:56.946007 7f479a4006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.112598 7f93e9ffb6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
+8
-15
@@ -1,15 +1,8 @@
|
|||||||
2024/06/15-23:24:42.606933 7f479d6006c0 Recovering log #125
|
2025/11/21-21:17:11.062660 7f34cdffb6c0 Recovering log #236
|
||||||
2024/06/15-23:24:42.618215 7f479d6006c0 Delete type=3 #123
|
2025/11/21-21:17:11.079663 7f34cdffb6c0 Delete type=3 #234
|
||||||
2024/06/15-23:24:42.618277 7f479d6006c0 Delete type=0 #125
|
2025/11/21-21:17:11.079731 7f34cdffb6c0 Delete type=0 #236
|
||||||
2024/06/15-23:25:26.272981 7f479a4006c0 Level-0 table #130: started
|
2025/11/21-21:20:34.088817 7f322ffff6c0 Level-0 table #241: started
|
||||||
2024/06/15-23:25:26.276630 7f479a4006c0 Level-0 table #130: 58473 bytes OK
|
2025/11/21-21:20:34.088856 7f322ffff6c0 Level-0 table #241: 0 bytes OK
|
||||||
2024/06/15-23:25:26.283532 7f479a4006c0 Delete type=0 #128
|
2025/11/21-21:20:34.094750 7f322ffff6c0 Delete type=0 #239
|
||||||
2024/06/15-23:25:26.314830 7f479a4006c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.094940 7f322ffff6c0 Manual compaction at level-0 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.314872 7f479a4006c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at '!items!zttESycGKltfwCzJ' @ 493 : 1
|
2025/11/21-21:20:34.094980 7f322ffff6c0 Manual compaction at level-1 from '!folders!5d4Zn28TUcPxRyXd' @ 72057594037927935 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.314876 7f479a4006c0 Compacting 1@1 + 1@2 files
|
|
||||||
2024/06/15-23:25:26.318892 7f479a4006c0 Generated table #131@1: 167 keys, 59188 bytes
|
|
||||||
2024/06/15-23:25:26.318906 7f479a4006c0 Compacted 1@1 + 1@2 files => 59188 bytes
|
|
||||||
2024/06/15-23:25:26.324686 7f479a4006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2024/06/15-23:25:26.324793 7f479a4006c0 Delete type=2 #74
|
|
||||||
2024/06/15-23:25:26.324924 7f479a4006c0 Delete type=2 #130
|
|
||||||
2024/06/15-23:25:26.356097 7f479a4006c0 Manual compaction at level-1 from '!items!zttESycGKltfwCzJ' @ 493 : 1 .. '!items!zttESycGKltfwCzJ' @ 0 : 0; will stop at (end)
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000222
|
MANIFEST-000332
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2024/06/15-23:28:57.095745 7f479d6006c0 Recovering log #219
|
2026/01/05-22:20:56.088422 7f93eaffd6c0 Recovering log #330
|
||||||
2024/06/15-23:28:57.105942 7f479d6006c0 Delete type=3 #217
|
2026/01/05-22:20:56.098507 7f93eaffd6c0 Delete type=3 #328
|
||||||
2024/06/15-23:28:57.105994 7f479d6006c0 Delete type=0 #219
|
2026/01/05-22:20:56.098565 7f93eaffd6c0 Delete type=0 #330
|
||||||
2024/06/15-23:30:57.182099 7f479a4006c0 Level-0 table #225: started
|
2026/01/05-22:39:51.119253 7f93e9ffb6c0 Level-0 table #335: started
|
||||||
2024/06/15-23:30:57.182178 7f479a4006c0 Level-0 table #225: 0 bytes OK
|
2026/01/05-22:39:51.119282 7f93e9ffb6c0 Level-0 table #335: 0 bytes OK
|
||||||
2024/06/15-23:30:57.269856 7f479a4006c0 Delete type=0 #223
|
2026/01/05-22:39:51.125789 7f93e9ffb6c0 Delete type=0 #333
|
||||||
2024/06/15-23:30:57.270086 7f479a4006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137875 7f93e9ffb6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:30:57.270118 7f479a4006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2026/01/05-22:39:51.137911 7f93e9ffb6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
+8
-15
@@ -1,15 +1,8 @@
|
|||||||
2024/06/15-23:24:42.689474 7f479c2006c0 Recovering log #215
|
2025/11/21-21:17:11.175622 7f34cd7fa6c0 Recovering log #326
|
||||||
2024/06/15-23:24:42.699972 7f479c2006c0 Delete type=3 #213
|
2025/11/21-21:17:11.190667 7f34cd7fa6c0 Delete type=3 #324
|
||||||
2024/06/15-23:24:42.700056 7f479c2006c0 Delete type=0 #215
|
2025/11/21-21:17:11.190757 7f34cd7fa6c0 Delete type=0 #326
|
||||||
2024/06/15-23:25:26.384925 7f479a4006c0 Level-0 table #220: started
|
2025/11/21-21:20:34.109081 7f322ffff6c0 Level-0 table #331: started
|
||||||
2024/06/15-23:25:26.388287 7f479a4006c0 Level-0 table #220: 29908 bytes OK
|
2025/11/21-21:20:34.109106 7f322ffff6c0 Level-0 table #331: 0 bytes OK
|
||||||
2024/06/15-23:25:26.394580 7f479a4006c0 Delete type=0 #218
|
2025/11/21-21:20:34.114933 7f322ffff6c0 Delete type=0 #329
|
||||||
2024/06/15-23:25:26.414903 7f479a4006c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
2025/11/21-21:20:34.121229 7f322ffff6c0 Manual compaction at level-0 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.424518 7f479a4006c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at '!items!tFQqcxmkS3MT6ASE' @ 45 : 1
|
2025/11/21-21:20:34.121264 7f322ffff6c0 Manual compaction at level-1 from '!items!26mRstKhCJoXkhu1' @ 72057594037927935 : 1 .. '!items!tFQqcxmkS3MT6ASE' @ 0 : 0; will stop at (end)
|
||||||
2024/06/15-23:25:26.424523 7f479a4006c0 Compacting 1@1 + 1@2 files
|
|
||||||
2024/06/15-23:25:26.428339 7f479a4006c0 Generated table #221@1: 15 keys, 29908 bytes
|
|
||||||
2024/06/15-23:25:26.428375 7f479a4006c0 Compacted 1@1 + 1@2 files => 29908 bytes
|
|
||||||
2024/06/15-23:25:26.435132 7f479a4006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
|
|
||||||
2024/06/15-23:25:26.435244 7f479a4006c0 Delete type=2 #164
|
|
||||||
2024/06/15-23:25:26.435402 7f479a4006c0 Delete type=2 #220
|
|
||||||
2024/06/15-23:25:26.456764 7f479a4006c0 Manual compaction at level-1 from '!items!tFQqcxmkS3MT6ASE' @ 45 : 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.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user