Compare commits
7 Commits
1afb1d0769
...
14.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 29213f11ed | |||
| 21f91a52e6 | |||
| a04032e002 | |||
| 896fa512b5 | |||
| e7504d0ecb | |||
| ea6f267f8f | |||
| cfda525f7c |
@@ -60,4 +60,4 @@ jobs:
|
||||
manifest: 'https://www.uberwald.me/gitea/public/fvtt-yggdrasill/releases/download/latest/system.json'
|
||||
notes: 'https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-yggdrasill.zip'
|
||||
compatibility-minimum: '13'
|
||||
compatibility-verified: '13'
|
||||
compatibility-verified: '14'
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
.history/
|
||||
node_modules/
|
||||
packs/_source/
|
||||
.github/
|
||||
|
||||
@@ -2682,3 +2682,19 @@ ul, li {
|
||||
opacity: 0.9;
|
||||
}
|
||||
}
|
||||
|
||||
/* Fix: item-controls toujours visibles dans le tab combat (armures, boucliers) */
|
||||
.fvtt-yggdrasill .sheet-body[data-tab="combat"] .item.flexrow {
|
||||
flex-wrap: nowrap;
|
||||
align-items: center;
|
||||
|
||||
.item-controls {
|
||||
display: flex !important;
|
||||
visibility: visible !important;
|
||||
opacity: 1 !important;
|
||||
position: static !important;
|
||||
flex: 0 0 auto;
|
||||
align-items: center;
|
||||
gap: 0.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ export default class YggdrasillPersonnageSheet extends YggdrasillActorSheet {
|
||||
}
|
||||
|
||||
context.optionsBase = {}
|
||||
for (let i = 0; i <= 5; i++) {
|
||||
for (let i = 0; i <= 10; i++) {
|
||||
context.optionsBase[i] = i.toString()
|
||||
}
|
||||
|
||||
|
||||
@@ -93,6 +93,18 @@ export class YggdrasillRollDialog {
|
||||
$("#srTotal").text(rollData.srTotal)
|
||||
})
|
||||
}
|
||||
|
||||
// Pour armes : mettre à jour l'effet affiché quand le type d'attaque change
|
||||
if (rollData.mode === "armecc" || rollData.mode === "armetir" || rollData.mode === "armedist") {
|
||||
$("#typeAttack").on("change", () => {
|
||||
rollData.attackDef = rollData.attackDef || {}
|
||||
rollData.attackDef.typeAttack = $("#typeAttack").val()
|
||||
this._updateAttackData(rollData, actor)
|
||||
$("#attackDescr").text(rollData.attackData.description || "")
|
||||
$("#caracName").text(`${rollData.attackData.categName || ""} / ${rollData.attackData.caracName || ""}`)
|
||||
$("#malus").text(rollData.attackData.malus ?? 0)
|
||||
})
|
||||
}
|
||||
|
||||
// Pour Sejdr: recalculer srTotal quand DM change
|
||||
if (rollData.mode === "sejdr") {
|
||||
@@ -223,19 +235,20 @@ export class YggdrasillRollDialog {
|
||||
* @private
|
||||
*/
|
||||
static _updateAttackData(rollData, actor) {
|
||||
const config = game.system.yggdrasill.config
|
||||
const attackType = rollData.attackDef.typeAttack
|
||||
const attackMode = config.attackMode?.[attackType]
|
||||
|
||||
if (attackMode) {
|
||||
rollData.attackData = rollData.attackData || {}
|
||||
rollData.attackData.categName = attackMode.categName
|
||||
rollData.attackData.caracName = attackMode.caracName
|
||||
rollData.attackData.malus = this._computeValue(attackMode.malus, actor)
|
||||
rollData.attackData.bonusdegats = this._computeValue(attackMode.bonusdegats, actor)
|
||||
rollData.attackData.protection = this._computeValue(attackMode.protection, actor)
|
||||
rollData.attackData.label = attackMode.label
|
||||
rollData.attackData.description = attackMode.description
|
||||
|
||||
let attackData
|
||||
if (rollData.mode === "armecc") {
|
||||
attackData = actor.getAttaqueData(attackType)
|
||||
} else {
|
||||
attackData = actor.getTirData(attackType)
|
||||
}
|
||||
|
||||
if (attackData) {
|
||||
rollData.attackDef = { ...rollData.attackDef, ...attackData }
|
||||
rollData.attackData = { ...rollData.attackDef }
|
||||
// Mettre à jour la caractéristique utilisée pour le jet (nbDice)
|
||||
rollData.selectedCarac = attackData.carac
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ export default class ArmureDataModel extends foundry.abstract.TypeDataModel {
|
||||
return {
|
||||
categorie: new fields.StringField({ initial: "" }),
|
||||
equipe: new fields.BooleanField({ initial: false }),
|
||||
protection: new fields.StringField({ initial: "" }),
|
||||
protection: new fields.NumberField({ initial: 0, integer: true }),
|
||||
enc: new fields.NumberField({ initial: 0, integer: true }),
|
||||
valeur: new fields.NumberField({ initial: 0, integer: true }),
|
||||
description: new fields.HTMLField({ initial: "" })
|
||||
|
||||
@@ -13,7 +13,7 @@ export class YggdrasillActorSheet extends foundry.appv1.sheets.ActorSheet {
|
||||
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["yggdrasill", "sheet", "actor"],
|
||||
template: "systems/fvtt-yggdrasill/templates/actor-sheet.html",
|
||||
template: "systems/fvtt-yggdrasill/templates/actor-personnage-sheet.hbs",
|
||||
width: 680,
|
||||
height: 740,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||
|
||||
@@ -8,120 +8,122 @@ const statusEffects = [
|
||||
{ yggdrasill: true, id: 'blesse', label: 'Blessé', icon: 'icons/svg/blood.svg' },
|
||||
{ yggdrasill: true, id: 'meurtri', label: 'Meurtri', icon: 'icons/svg/falling.svg' }
|
||||
]
|
||||
const armeCategorieToCompetence = { "lutte": "Lutte", "improvisee": "Armes Improvisées", "courte":"Armes courtes", "longue": "Armes longues", "deuxmains": "Armes à deux mains",
|
||||
"hast": "Armes d'Hast", "tir": "Armes de tir", "jet": "Lancer" }
|
||||
const attackMode = {
|
||||
"classique": {
|
||||
"categName": "corps",
|
||||
"caracName": "agilite",
|
||||
"malus": 0,
|
||||
"protection": 0,
|
||||
"bonusdegats": 0,
|
||||
"label": "Attaque Classique",
|
||||
"description": "Attaque classique"
|
||||
},
|
||||
"force": {
|
||||
"categName": "corps",
|
||||
"caracName": "puissance",
|
||||
"malus": 0,
|
||||
"protection": 0,
|
||||
"bonusdegats": "puissance;1",
|
||||
"label": "Attaque en Force",
|
||||
"description": "Attaque en Force : Malus: 0, +PUI en dégats"
|
||||
},
|
||||
"devastatrice": {
|
||||
"categName": "corps",
|
||||
"caracName": "puissance",
|
||||
"malus": "puissance;1",
|
||||
"bonusdegats": "puissance;3",
|
||||
"protection": 0,
|
||||
"label": "Attaque Dévastatrice",
|
||||
"description": "Attaque Dévastratrice : Malus -PUI, +PUI*3 en dégats"
|
||||
},
|
||||
"precise": {
|
||||
"categName": "esprit",
|
||||
"caracName": "perception",
|
||||
"malus": "0",
|
||||
"bonusdegats": 0,
|
||||
"protection": "perception;1",
|
||||
"label": "Attaque Précise",
|
||||
"description": "Attaque précise : Malus : 0, protection réduite de -PER"
|
||||
},
|
||||
"visee": {
|
||||
"categName": "esprit",
|
||||
"caracName": "perception",
|
||||
"malus": "perception;1",
|
||||
"bonusdegats": 0,
|
||||
"protection": "perception;3",
|
||||
"label": "Attaque Visée",
|
||||
"description": "Attaque visée : Malus : -PER, protection réduite de -PER"
|
||||
}
|
||||
const armeCategorieToCompetence = {
|
||||
"lutte": "Lutte", "improvisee": "Armes Improvisées", "courte": "Armes courtes", "longue": "Armes longues", "deuxmains": "Armes à deux mains",
|
||||
"hast": "Armes d'Hast", "tir": "Armes de tir", "jet": "Lancer"
|
||||
}
|
||||
const attackMode = {
|
||||
"classique": {
|
||||
"categName": "corps",
|
||||
"caracName": "agilite",
|
||||
"malus": 0,
|
||||
"protection": 0,
|
||||
"bonusdegats": 0,
|
||||
"label": "Attaque Classique",
|
||||
"description": "Attaque classique"
|
||||
},
|
||||
"force": {
|
||||
"categName": "corps",
|
||||
"caracName": "puissance",
|
||||
"malus": 0,
|
||||
"protection": 0,
|
||||
"bonusdegats": "puissance;1",
|
||||
"label": "Attaque en Force",
|
||||
"description": "Attaque en Force : Malus: 0, +PUI en dégats"
|
||||
},
|
||||
"devastatrice": {
|
||||
"categName": "corps",
|
||||
"caracName": "puissance",
|
||||
"malus": "puissance;1",
|
||||
"bonusdegats": "puissance;3",
|
||||
"protection": 0,
|
||||
"label": "Attaque Dévastatrice",
|
||||
"description": "Attaque Dévastratrice : Malus -PUI, +PUI*3 en dégats"
|
||||
},
|
||||
"precise": {
|
||||
"categName": "esprit",
|
||||
"caracName": "perception",
|
||||
"malus": "0",
|
||||
"bonusdegats": 0,
|
||||
"protection": "perception;1",
|
||||
"label": "Attaque Précise",
|
||||
"description": "Attaque précise : Malus : 0, protection réduite de -PER"
|
||||
},
|
||||
"visee": {
|
||||
"categName": "esprit",
|
||||
"caracName": "perception",
|
||||
"malus": "perception;1",
|
||||
"bonusdegats": 0,
|
||||
"protection": "perception;3",
|
||||
"label": "Attaque Visée",
|
||||
"description": "Attaque visée : Malus : -PER, protection réduite de -PER"
|
||||
}
|
||||
const tirMode = {
|
||||
"pose": {
|
||||
"categName": "corps",
|
||||
"caracName": "agilite",
|
||||
"malus": 0,
|
||||
"protection": 0,
|
||||
"bonusdegats": 0,
|
||||
"label": "Tir posé",
|
||||
"description": "Tir posé"
|
||||
},
|
||||
"arrettir": {
|
||||
"categName": "ame",
|
||||
"caracName": "instinct",
|
||||
"malus": 0,
|
||||
"protection": 0,
|
||||
"bonusdegats": "instinct;1",
|
||||
"label": "Tir d'Arrêt (Tir)",
|
||||
"description": "Tir d'Arrêt (Tir) : Malus: 0, +INS en dégats"
|
||||
},
|
||||
"arretjet": {
|
||||
"categName": "corps",
|
||||
"caracName": "puissance",
|
||||
"malus": 0,
|
||||
"protection": 0,
|
||||
"bonusdegats": "puissance;1",
|
||||
"label": "Tir d'Arrêt (Jet)",
|
||||
"description": "Tir d'Arrêt (Jet) : Malus: 0, +PUI en dégats"
|
||||
},
|
||||
"impacttir": {
|
||||
"categName": "ame",
|
||||
"caracName": "instinct",
|
||||
"malus": "instinct;1",
|
||||
"protection": 0,
|
||||
"bonusdegats": "instinct;3",
|
||||
"label": "Tir d'Impact (Tir)",
|
||||
"description": "Tir d'Impact (Tir) : Malus: -INS, +INS*3 en dégats"
|
||||
},
|
||||
"impactjet": {
|
||||
"categName": "corps",
|
||||
"caracName": "puissance",
|
||||
"malus": "puissance;1",
|
||||
"protection": 0,
|
||||
"bonusdegats": "puissance;3",
|
||||
"label": "Attaque d'Impact (Jet)",
|
||||
"description": "Attaque d'Impact (Jet) : Malus: -PUI, +PUI*3 en dégats"
|
||||
},
|
||||
"precision": {
|
||||
"categName": "esprit",
|
||||
"caracName": "perception",
|
||||
"malus": "0",
|
||||
"bonusdegats": 0,
|
||||
"protection": "perception;1",
|
||||
"label": "Tir de Précision",
|
||||
"description": "Tir de Précision : Malus : 0, protection réduite de -PER"
|
||||
},
|
||||
"vise": {
|
||||
"categName": "esprit",
|
||||
"caracName": "perception",
|
||||
"malus": "perception;1",
|
||||
"bonusdegats": 0,
|
||||
"protection": "perception;3",
|
||||
"label": "Tir Visée",
|
||||
"description": "Tir visée : Malus : -PER, protection réduite de -PER"
|
||||
}
|
||||
}
|
||||
const tirMode = {
|
||||
"pose": {
|
||||
"categName": "corps",
|
||||
"caracName": "agilite",
|
||||
"malus": 0,
|
||||
"protection": 0,
|
||||
"bonusdegats": 0,
|
||||
"label": "Tir posé",
|
||||
"description": "Tir posé"
|
||||
},
|
||||
"arrettir": {
|
||||
"categName": "ame",
|
||||
"caracName": "instinct",
|
||||
"malus": 0,
|
||||
"protection": 0,
|
||||
"bonusdegats": "instinct;1",
|
||||
"label": "Tir d'Arrêt (Tir)",
|
||||
"description": "Tir d'Arrêt (Tir) : Malus: 0, +INS en dégats"
|
||||
},
|
||||
"arretjet": {
|
||||
"categName": "corps",
|
||||
"caracName": "puissance",
|
||||
"malus": 0,
|
||||
"protection": 0,
|
||||
"bonusdegats": "puissance;1",
|
||||
"label": "Tir d'Arrêt (Jet)",
|
||||
"description": "Tir d'Arrêt (Jet) : Malus: 0, +PUI en dégats"
|
||||
},
|
||||
"impacttir": {
|
||||
"categName": "ame",
|
||||
"caracName": "instinct",
|
||||
"malus": "instinct;1",
|
||||
"protection": 0,
|
||||
"bonusdegats": "instinct;3",
|
||||
"label": "Tir d'Impact (Tir)",
|
||||
"description": "Tir d'Impact (Tir) : Malus: -INS, +INS*3 en dégats"
|
||||
},
|
||||
"impactjet": {
|
||||
"categName": "corps",
|
||||
"caracName": "puissance",
|
||||
"malus": "puissance;1",
|
||||
"protection": 0,
|
||||
"bonusdegats": "puissance;3",
|
||||
"label": "Attaque d'Impact (Jet)",
|
||||
"description": "Attaque d'Impact (Jet) : Malus: -PUI, +PUI*3 en dégats"
|
||||
},
|
||||
"precision": {
|
||||
"categName": "esprit",
|
||||
"caracName": "perception",
|
||||
"malus": "0",
|
||||
"bonusdegats": 0,
|
||||
"protection": "perception;1",
|
||||
"label": "Tir de Précision",
|
||||
"description": "Tir de Précision : Malus : 0, protection réduite de -PER"
|
||||
},
|
||||
"vise": {
|
||||
"categName": "esprit",
|
||||
"caracName": "perception",
|
||||
"malus": "perception;1",
|
||||
"bonusdegats": 0,
|
||||
"protection": "perception;3",
|
||||
"label": "Tir Visée",
|
||||
"description": "Tir visée : Malus : -PER, protection réduite de -PER"
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* -------------------------------------------- */
|
||||
@@ -135,8 +137,8 @@ export class YggdrasillActor extends Actor {
|
||||
/**
|
||||
* Override the create() function to provide additional SoS functionality.
|
||||
*
|
||||
* This overrided create() function adds initial items
|
||||
* Namely: Basic skills, money,
|
||||
* This overrided create() function adds initial items
|
||||
* Namely: Basic skills, money,
|
||||
*
|
||||
* @param {Object} data Barebones actor data which this function adds onto.
|
||||
* @param {Object} options (Unused) Additional options which customize the creation workflow.
|
||||
@@ -163,29 +165,32 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
return super.create(data, options);
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
prepareBaseData() {
|
||||
if ( this.type == "personnage") {
|
||||
if (game.release.generation >= 14) {
|
||||
super.prepareBaseData();
|
||||
}
|
||||
if (this.type == "personnage") {
|
||||
this.computeCaracSecondaire();
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async prepareData() {
|
||||
if ( this.type == "personnage") {
|
||||
if (this.type == "personnage") {
|
||||
this.computeCaracSecondaire();
|
||||
if (this.system.furor.value == 0)
|
||||
if (this.system.furor.value == 0)
|
||||
await this.setEpuise();
|
||||
else
|
||||
else
|
||||
await this.cleanEpuise();
|
||||
if ( this.system.caracsecondaire.pv.value < (this.system.caracsecondaire.pv.max/4) )
|
||||
if (this.system.caracsecondaire.pv.value < (this.system.caracsecondaire.pv.max / 4))
|
||||
await this.setMeurtri();
|
||||
else
|
||||
else
|
||||
await this.cleanMeurtri();
|
||||
if ( this.system.caracsecondaire.pv.value < (this.system.caracsecondaire.pv.max/2) )
|
||||
if (this.system.caracsecondaire.pv.value < (this.system.caracsecondaire.pv.max / 2))
|
||||
await this.setBlesse();
|
||||
else
|
||||
else
|
||||
await this.cleanBlesse();
|
||||
}
|
||||
super.prepareData();
|
||||
@@ -193,39 +198,39 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_preUpdate(changed, options, user) {
|
||||
if ( changed.system?.caracsecondaire?.pv?.value ) {
|
||||
if ( changed.system.caracsecondaire.pv.value < 0 )
|
||||
if (changed.system?.caracsecondaire?.pv?.value) {
|
||||
if (changed.system.caracsecondaire.pv.value < 0)
|
||||
changed.system.caracsecondaire.pv.value = 0;
|
||||
if ( changed.system.caracsecondaire.pv.value > this.system.caracsecondaire.pv.max )
|
||||
changed.system.caracsecondaire.pv.value = this.system.caracsecondaire.pv.max;
|
||||
if (changed.system.caracsecondaire.pv.value > this.system.caracsecondaire.pv.max)
|
||||
changed.system.caracsecondaire.pv.value = this.system.caracsecondaire.pv.max;
|
||||
}
|
||||
|
||||
if ( changed.system?.furor?.value ) {
|
||||
if ( changed.system.furor.value < 0 )
|
||||
|
||||
if (changed.system?.furor?.value) {
|
||||
if (changed.system.furor.value < 0)
|
||||
changed.system.furor.value = 0;
|
||||
if ( changed.system.furor.value > this.system.furor.max )
|
||||
if (changed.system.furor.value > this.system.furor.max)
|
||||
changed.system.furor.value = this.system.furor.max;
|
||||
}
|
||||
super._preUpdate(changed, options, user);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getCompetences() {
|
||||
let comp = this.items.filter( item => item.type == 'competence');
|
||||
let comp = this.items.filter(item => item.type == 'competence');
|
||||
return comp;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
compareName( a, b) {
|
||||
if ( a.name < b.name ) {
|
||||
compareName(a, b) {
|
||||
if (a.name < b.name) {
|
||||
return -1;
|
||||
}
|
||||
if ( a.name > b.name ) {
|
||||
if (a.name > b.name) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getInitiativeScore() {
|
||||
if ( this.type == 'personnage') {
|
||||
if (this.type == 'personnage') {
|
||||
return this.system.caracsecondaire.reaction.max;
|
||||
} else {
|
||||
return this.system.attributs.physique.values.defaut.value;
|
||||
@@ -234,86 +239,86 @@ export class YggdrasillActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCompetencesGenerales() {
|
||||
let comp = this.items.filter( item => item.type == 'competence' && item.system.categorie == 'generale');
|
||||
return comp.sort( this.compareName );
|
||||
let comp = this.items.filter(item => item.type == 'competence' && item.system.categorie == 'generale');
|
||||
return comp.sort(this.compareName);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getCompetencesMartiales() {
|
||||
let comp = this.items.filter( item => item.type == 'competence' && item.system.categorie == 'martiale');
|
||||
return comp.sort( this.compareName );
|
||||
let comp = this.items.filter(item => item.type == 'competence' && item.system.categorie == 'martiale');
|
||||
return comp.sort(this.compareName);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getCompetencesMagiques() {
|
||||
let comp = this.items.filter( item => item.type == 'competence' && item.system.categorie == 'magique');
|
||||
return comp.sort( this.compareName );
|
||||
let comp = this.items.filter(item => item.type == 'competence' && item.system.categorie == 'magique');
|
||||
return comp.sort(this.compareName);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getDons( ) {
|
||||
let dons = this.items.filter( item => item.type == 'don');
|
||||
return dons.sort( this.compareName );
|
||||
getDons() {
|
||||
let dons = this.items.filter(item => item.type == 'don');
|
||||
return dons.sort(this.compareName);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getEffetsMagiques( ) {
|
||||
let effets = this.items.filter( item => item.type == 'effetmagique');
|
||||
return effets.sort( this.compareName );
|
||||
getEffetsMagiques() {
|
||||
let effets = this.items.filter(item => item.type == 'effetmagique');
|
||||
return effets.sort(this.compareName);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getEffetsDeRunes( ) {
|
||||
let effets = this.items.filter( item => item.type == 'effetderune');
|
||||
return effets.sort( this.compareName );
|
||||
getEffetsDeRunes() {
|
||||
let effets = this.items.filter(item => item.type == 'effetderune');
|
||||
return effets.sort(this.compareName);
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getMonnaies( ) {
|
||||
let monnaies = this.items.filter( item => item.type == 'monnaie');
|
||||
return monnaies.sort( this.compareName );
|
||||
getMonnaies() {
|
||||
let monnaies = this.items.filter(item => item.type == 'monnaie');
|
||||
return monnaies.sort(this.compareName);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getFaiblesses( ) {
|
||||
let faib = this.items.filter( item => item.type == 'faiblesse');
|
||||
return faib.sort( this.compareName );
|
||||
getFaiblesses() {
|
||||
let faib = this.items.filter(item => item.type == 'faiblesse');
|
||||
return faib.sort(this.compareName);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getBlessures( ) {
|
||||
return this.items.filter( item => item.type == 'blessure');
|
||||
getBlessures() {
|
||||
return this.items.filter(item => item.type == 'blessure');
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getToutEquipements() {
|
||||
return this.items.filter( item => item.type == 'equipement' || item.type == 'armure' || item.type == 'armecc' || item.type == 'armedist' || item.type == 'bouclier');
|
||||
return this.items.filter(item => item.type == 'equipement' || item.type == 'armure' || item.type == 'armecc' || item.type == 'armedist' || item.type == 'bouclier');
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getArmes() {
|
||||
return this.items.filter( item => (item.type == 'armecc' || item.type == 'armedist') && item.system.equipe );
|
||||
return this.items.filter(item => (item.type == 'armecc' || item.type == 'armedist') && item.system.equipe);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getArmures() {
|
||||
return this.items.filter( item => item.type == 'armure' && item.system.equipe );
|
||||
return this.items.filter(item => item.type == 'armure' && item.system.equipe);
|
||||
}
|
||||
getBoucliers() {
|
||||
return this.items.filter( item => item.type == 'bouclier' && item.system.equipe );
|
||||
getBoucliers() {
|
||||
return this.items.filter(item => item.type == 'bouclier' && item.system.equipe);
|
||||
}
|
||||
getProuessesMartiales() {
|
||||
let prouesse = this.items.filter( item => item.type == 'prouesse' );
|
||||
return prouesse.sort( this.compareName );
|
||||
let prouesse = this.items.filter(item => item.type == 'prouesse');
|
||||
return prouesse.sort(this.compareName);
|
||||
}
|
||||
getSortsSejdr() {
|
||||
let sort = this.items.filter( item => item.type == 'sortsejdr' );
|
||||
return sort.sort( this.compareName );
|
||||
let sort = this.items.filter(item => item.type == 'sortsejdr');
|
||||
return sort.sort(this.compareName);
|
||||
}
|
||||
getSortsGaldr() {
|
||||
let sort = this.items.filter( item => item.type == 'sortgaldr' );
|
||||
return sort.sort( this.compareName );
|
||||
let sort = this.items.filter(item => item.type == 'sortgaldr');
|
||||
return sort.sort(this.compareName);
|
||||
}
|
||||
getRunes() {
|
||||
let sort = this.items.filter( item => item.type == 'rune' );
|
||||
return sort.sort( this.compareName );
|
||||
let sort = this.items.filter(item => item.type == 'rune');
|
||||
return sort.sort(this.compareName);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async setEpuise( ) {
|
||||
async setEpuise() {
|
||||
if (!this.system.status.epuise) {
|
||||
await this.update({ 'system.status.epuise': true});
|
||||
await this.update({ 'system.status.epuise': true });
|
||||
this.system.status.epuise = true;
|
||||
}
|
||||
/*let effect = this.getEffectByLabel('Epuisé');
|
||||
@@ -325,18 +330,18 @@ export class YggdrasillActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async cleanEpuise() {
|
||||
if (this.system.status.epuise) {
|
||||
await this.update({ 'system.status.epuise': false});
|
||||
await this.update({ 'system.status.epuise': false });
|
||||
this.system.status.epuise = false;
|
||||
}
|
||||
/*let effect = this.getEffectByLabel('Epuisé');
|
||||
if ( effect ) {
|
||||
await this.deleteEmbeddedDocuments("ActiveEffect", [ effect.id ]);
|
||||
await this.deleteEmbeddedDocuments("ActiveEffect", [ effect.id ]);
|
||||
}*/
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async toggleEpuise( ) {
|
||||
if ( this.system.status.epuise ) {
|
||||
await this.cleanEpuise();
|
||||
async toggleEpuise() {
|
||||
if (this.system.status.epuise) {
|
||||
await this.cleanEpuise();
|
||||
} else {
|
||||
await this.setEpuise();
|
||||
}
|
||||
@@ -347,9 +352,9 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async setBlesse( ) {
|
||||
async setBlesse() {
|
||||
if (!this.system.status.blesse) {
|
||||
await this.update({ 'system.status.blesse': true} );
|
||||
await this.update({ 'system.status.blesse': true });
|
||||
this.system.status.blesse = true;
|
||||
}
|
||||
/*let effect = this.getEffectByLabel('Blessé');
|
||||
@@ -361,12 +366,12 @@ export class YggdrasillActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async cleanBlesse() {
|
||||
if (this.system.status.blesse) {
|
||||
await this.update({ 'system.status.blesse': false} );
|
||||
await this.update({ 'system.status.blesse': false });
|
||||
this.system.status.blesse = false;
|
||||
}
|
||||
/*let effect = this.getEffectByLabel('Blessé');
|
||||
if ( effect ) {
|
||||
await this.deleteEmbeddedDocuments("ActiveEffect", [ effect.id ]);
|
||||
await this.deleteEmbeddedDocuments("ActiveEffect", [ effect.id ]);
|
||||
}*/
|
||||
}
|
||||
|
||||
@@ -376,17 +381,17 @@ export class YggdrasillActor extends Actor {
|
||||
//return this.getEffectByLabel('Blessé');
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async setMeurtri( ) {
|
||||
async setMeurtri() {
|
||||
await this.setBlesse();
|
||||
if (!this.system.status.meurtri) {
|
||||
await this.update({ 'system.status.meurtri': true});
|
||||
await this.update({ 'system.status.meurtri': true });
|
||||
this.system.status.meurtri = true;
|
||||
}
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async cleanMeurtri() {
|
||||
if (this.system.status.meurtri) {
|
||||
await this.update({ 'system.status.meurtri': false});
|
||||
await this.update({ 'system.status.meurtri': false });
|
||||
this.system.status.meurtri = false;
|
||||
}
|
||||
}
|
||||
@@ -396,8 +401,8 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async decrementFuror( nbFuror) {
|
||||
await this.update( { 'system.furor.value': this.system.furor.value - nbFuror } );
|
||||
async decrementFuror(nbFuror) {
|
||||
await this.update({ 'system.furor.value': this.system.furor.value - nbFuror });
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -419,11 +424,11 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getCarac( caracName ) {
|
||||
for( let key in this.system.carac) {
|
||||
getCarac(caracName) {
|
||||
for (let key in this.system.carac) {
|
||||
let categ = this.system.carac[key];
|
||||
for( let carac in categ.carac) {
|
||||
if (carac.toLowerCase() == caracName.toLowerCase() ) {
|
||||
for (let carac in categ.carac) {
|
||||
if (carac.toLowerCase() == caracName.toLowerCase()) {
|
||||
return foundry.utils.deepClone(categ.carac[carac]);
|
||||
}
|
||||
}
|
||||
@@ -431,16 +436,16 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
computeCaracSecondaire( ) {
|
||||
if ( this.type == "personnage") {
|
||||
computeCaracSecondaire() {
|
||||
if (this.type == "personnage") {
|
||||
let basecorps = this.system.carac.corps.carac;
|
||||
let sumcorps = basecorps.puissance.value + basecorps.agilite.value + basecorps.vigueur.value
|
||||
let baseesprit = this.system.carac.esprit.carac;
|
||||
let sumesprit = baseesprit.intellect.value + baseesprit.perception.value + baseesprit.tenacite.value
|
||||
let baseame = this.system.carac.ame.carac;
|
||||
let sumame = baseame.charisme.value + baseame.communication.value + baseame.instinct.value
|
||||
|
||||
let newPV = (sumcorps*3) + (sumesprit *2) + sumame;
|
||||
|
||||
let newPV = (sumcorps * 3) + (sumesprit * 2) + sumame;
|
||||
this.system.caracsecondaire.pv.max = newPV;
|
||||
|
||||
this.system.caracsecondaire.reaction.value = baseesprit.intellect.value + baseesprit.perception.value + baseame.instinct.value;
|
||||
@@ -478,16 +483,16 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async equiperObject( equipementId ) {
|
||||
let item = this.items.find( item => item.id == equipementId );
|
||||
async equiperObject(equipementId) {
|
||||
let item = this.items.find(item => item.id == equipementId);
|
||||
if (item && item.system) {
|
||||
let update = { _id: item.id, "system.equipe": !item.system.equipe };
|
||||
await this.updateEmbeddedDocuments('Item', [update]); // Updates one EmbeddedEntity
|
||||
}
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async updateCompetence( compId, niveau) {
|
||||
let comp = this.items.find( item => item.type == 'competence' && item.id == compId);
|
||||
async updateCompetence(compId, niveau) {
|
||||
let comp = this.items.find(item => item.type == 'competence' && item.id == compId);
|
||||
console.log("Comp updated!!!!", compId, niveau);
|
||||
if (comp) {
|
||||
const update = { _id: comp.id, 'system.niveau': niveau };
|
||||
@@ -498,21 +503,21 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
buildListeActionsCombat( ) {
|
||||
buildListeActionsCombat() {
|
||||
let armes = [];
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollAttribute( attrkey, subAttrKey = 'defaut') {
|
||||
async rollAttribute(attrkey, subAttrKey = 'defaut') {
|
||||
let attr = foundry.utils.duplicate(this.system.attributs[attrkey]);
|
||||
console.log("ATTR : ", attr, attrkey, subAttrKey);
|
||||
let subAttr = foundry.utils.duplicate(this.system.attributs[attrkey].values[subAttrKey] );
|
||||
if ( attr ) {
|
||||
let subAttr = foundry.utils.duplicate(this.system.attributs[attrkey].values[subAttrKey]);
|
||||
if (attr) {
|
||||
subAttr.label = subAttr.label || "";
|
||||
let title = `Attribut : ${attr.label} ${subAttr.label} : ${subAttr.value}`;
|
||||
let rollData = {
|
||||
mode: "attribut",
|
||||
alias: this.name,
|
||||
alias: this.name,
|
||||
actorImg: this.img,
|
||||
actorId: this.id,
|
||||
attr: attr,
|
||||
@@ -523,45 +528,45 @@ export class YggdrasillActor extends Actor {
|
||||
isBlesse: this.system.etat.etat == "blesse",
|
||||
}
|
||||
this.addDefaultRoll(rollData)
|
||||
await YggdrasillRollDialog.create( this, rollData);
|
||||
await YggdrasillRollDialog.create(this, rollData);
|
||||
} else {
|
||||
ui.notifications.warn("Attribut non trouvée");
|
||||
}
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
addDefaultRoll(rollData) {
|
||||
rollData.optionsBonusMalus= YggdrasillUtility.createOptions(-15, 15)
|
||||
rollData.bonusMalus= 0
|
||||
rollData.optionsFuror= YggdrasillUtility.createOptions(0, this.getCurrentFuror())
|
||||
rollData.furorUsage= 0
|
||||
rollData.optionsBD= YggdrasillUtility.createOptions(0, +15)
|
||||
rollData.sr= 0
|
||||
rollData.optionsBonusMalus = YggdrasillUtility.createOptions(-15, 15)
|
||||
rollData.bonusMalus = 0
|
||||
rollData.optionsFuror = YggdrasillUtility.createOptions(0, this.getCurrentFuror())
|
||||
rollData.furorUsage = 0
|
||||
rollData.optionsBD = YggdrasillUtility.createOptions(0, +15)
|
||||
rollData.sr = 0
|
||||
rollData.puissanceRune = 1
|
||||
rollData.optionsPuissanceRune= YggdrasillUtility.createOptions(1, +15)
|
||||
rollData.supportRune= "peau"
|
||||
rollData.optionsPuissanceRune = YggdrasillUtility.createOptions(1, +15)
|
||||
rollData.supportRune = "peau"
|
||||
|
||||
rollData.config= game.system.config
|
||||
rollData.config = game.system.config
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async rollCarac( categName, caracName) {
|
||||
async rollCarac(categName, caracName) {
|
||||
let carac = foundry.utils.duplicate(this.system.carac[categName].carac[caracName]);
|
||||
if ( carac) {
|
||||
if (carac) {
|
||||
let rollData = {
|
||||
mode: "carac",
|
||||
alias: this.name,
|
||||
alias: this.name,
|
||||
actorImg: this.img,
|
||||
actorId: this.id,
|
||||
img: `systems/fvtt-yggdrasill/images/icons/icon_carac_${categName}.png`,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
title: `Caractéristique ${carac.label} : ${carac.value}`,
|
||||
selectedCarac: carac,
|
||||
selectedCarac: carac,
|
||||
isEpuise: this.isEpuise(),
|
||||
isBlesse: this.isBlesse(),
|
||||
isMeurtri: this.isMeurtri(),
|
||||
}
|
||||
this.addDefaultRoll(rollData)
|
||||
console.log("CARAC : ", rollData, this.system.carac);
|
||||
await YggdrasillRollDialog.create( this, rollData);
|
||||
await YggdrasillRollDialog.create(this, rollData);
|
||||
} else {
|
||||
ui.notifications.warn("Caractéristique non trouvée");
|
||||
}
|
||||
@@ -569,12 +574,12 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollCompetence( competenceId ) {
|
||||
let competence = this.items.find( item => item.type == 'competence' && item.id == competenceId);
|
||||
if ( competence) {
|
||||
async rollCompetence(competenceId) {
|
||||
let competence = this.items.find(item => item.type == 'competence' && item.id == competenceId);
|
||||
if (competence) {
|
||||
let rollData = {
|
||||
mode: "competence",
|
||||
alias: this.name,
|
||||
alias: this.name,
|
||||
actorImg: this.img,
|
||||
actorId: this.id,
|
||||
img: competence.img,
|
||||
@@ -586,83 +591,85 @@ export class YggdrasillActor extends Actor {
|
||||
isMeurtri: this.isMeurtri(),
|
||||
}
|
||||
this.addDefaultRoll(rollData)
|
||||
await YggdrasillRollDialog.create( this, rollData);
|
||||
await YggdrasillRollDialog.create(this, rollData);
|
||||
} else {
|
||||
ui.notifications.warn("Compétence non trouvée");
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getAttaqueData( mode ) {
|
||||
getAttaqueData(mode) {
|
||||
let attackData = foundry.utils.duplicate(attackMode[mode]);
|
||||
if ( attackData){
|
||||
if (attackData) {
|
||||
attackData.mode = mode;
|
||||
attackData.carac = foundry.utils.duplicate(this.system.carac[attackData.categName].carac[attackData.caracName]);
|
||||
if ( attackData.malus != 0) {
|
||||
const categ = this.system.carac[attackData.categName];
|
||||
attackData.carac = foundry.utils.duplicate(categ?.carac[attackData.caracName] ?? {});
|
||||
if (attackData.malus != 0) {
|
||||
let malusTab = attackData.malus.split(';');
|
||||
attackData.malus = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.malus = (categ?.carac[malusTab[0]]?.value ?? 0) * Number(malusTab[1]);
|
||||
}
|
||||
if ( attackData.protection != 0) {
|
||||
if (attackData.protection != 0) {
|
||||
let malusTab = attackData.protection.split(';');
|
||||
attackData.protection = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.protection = (categ?.carac[malusTab[0]]?.value ?? 0) * Number(malusTab[1]);
|
||||
}
|
||||
if ( attackData.bonusdegats != 0) {
|
||||
if (attackData.bonusdegats != 0) {
|
||||
let malusTab = attackData.bonusdegats.split(';');
|
||||
attackData.bonusdegats = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.bonusdegats = (categ?.carac[malusTab[0]]?.value ?? 0) * Number(malusTab[1]);
|
||||
}
|
||||
}
|
||||
return attackData;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getTirData( mode) {
|
||||
let attackData = foundry.utils.duplicate( tirMode[mode] );
|
||||
if ( attackData){
|
||||
getTirData(mode) {
|
||||
let attackData = foundry.utils.duplicate(tirMode[mode]);
|
||||
if (attackData) {
|
||||
attackData.mode = mode;
|
||||
attackData.carac = foundry.utils.duplicate(this.system.carac[attackData.categName].carac[attackData.caracName]);
|
||||
if ( attackData.malus != 0) {
|
||||
const categ = this.system.carac[attackData.categName];
|
||||
attackData.carac = foundry.utils.duplicate(categ?.carac[attackData.caracName] ?? {});
|
||||
if (attackData.malus != 0) {
|
||||
let malusTab = attackData.malus.split(';');
|
||||
attackData.malus = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.malus = (categ?.carac[malusTab[0]]?.value ?? 0) * Number(malusTab[1]);
|
||||
}
|
||||
if ( attackData.protection != 0) {
|
||||
if (attackData.protection != 0) {
|
||||
let malusTab = attackData.protection.split(';');
|
||||
attackData.protection = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.protection = (categ?.carac[malusTab[0]]?.value ?? 0) * Number(malusTab[1]);
|
||||
}
|
||||
if ( attackData.bonusdegats != 0) {
|
||||
if (attackData.bonusdegats != 0) {
|
||||
let malusTab = attackData.bonusdegats.split(';');
|
||||
attackData.bonusdegats = this.system.carac[attackData.categName].carac[malusTab[0]].value * Number(malusTab[1])
|
||||
attackData.bonusdegats = (categ?.carac[malusTab[0]]?.value ?? 0) * Number(malusTab[1]);
|
||||
}
|
||||
}
|
||||
return attackData;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollSort( sortId, magie) {
|
||||
let sort = this.items.find( item => item.id == sortId);
|
||||
let competence = this.items.find( item => item.type == 'competence' && item.name.toLowerCase().includes(magie));
|
||||
console.log("SORT :", sortId, sort, competence );
|
||||
|
||||
async rollSort(sortId, magie) {
|
||||
let sort = this.items.find(item => item.id == sortId);
|
||||
let competence = this.items.find(item => item.type == 'competence' && item.name.toLowerCase().includes(magie));
|
||||
console.log("SORT :", sortId, sort, competence);
|
||||
|
||||
let carac;
|
||||
if ( magie == "sejdr") {
|
||||
carac = foundry.utils.duplicate(this.system.carac.ame.carac.instinct);
|
||||
} else if ( magie == "rune") {
|
||||
carac = foundry.utils.duplicate(this.system.carac.ame.carac.communication);
|
||||
if (magie == "sejdr") {
|
||||
carac = foundry.utils.duplicate(this.system.carac.ame.carac.instinct);
|
||||
} else if (magie == "rune") {
|
||||
carac = foundry.utils.duplicate(this.system.carac.ame.carac.communication);
|
||||
} else {
|
||||
carac = foundry.utils.duplicate(this.system.carac.ame.carac.charisme);
|
||||
carac = foundry.utils.duplicate(this.system.carac.ame.carac.charisme);
|
||||
}
|
||||
|
||||
if ( sort && competence) {
|
||||
|
||||
if (sort && competence) {
|
||||
|
||||
let rollData = {
|
||||
mode: magie,
|
||||
isMagie: true,
|
||||
alias: this.name,
|
||||
alias: this.name,
|
||||
actorImg: this.img,
|
||||
actorId: this.id,
|
||||
img: sort.img,
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
title: magie + " - " + sort.name,
|
||||
selectedCarac: carac,
|
||||
selectedCarac: carac,
|
||||
agiliteCarac: foundry.utils.duplicate(this.system.carac.corps.carac.agilite),
|
||||
instinctCarac: foundry.utils.duplicate(this.system.carac.ame.carac.instinct),
|
||||
sort: foundry.utils.duplicate(sort),
|
||||
@@ -677,32 +684,32 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
this.addDefaultRoll(rollData)
|
||||
rollData.sr = 14
|
||||
await YggdrasillRollDialog.create( this, rollData);
|
||||
await YggdrasillRollDialog.create(this, rollData);
|
||||
} else {
|
||||
ui.notifications.warn("Sortilège ou Compétence non trouvée !", sort, compName);
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollArme( armeId ) {
|
||||
let arme = this.items.find( item => item.id == armeId);
|
||||
async rollArme(armeId) {
|
||||
let arme = this.items.find(item => item.id == armeId);
|
||||
let compName = armeCategorieToCompetence[arme.system.categorie];
|
||||
let competence = this.items.find( item => item.type == 'competence' && item.name == compName);
|
||||
console.log("ARME :", armeId, arme, competence );
|
||||
|
||||
if ( arme && competence) {
|
||||
|
||||
let competence = this.items.find(item => item.type == 'competence' && item.name == compName);
|
||||
console.log("ARME :", armeId, arme, competence);
|
||||
|
||||
if (arme && competence) {
|
||||
|
||||
let attackDef
|
||||
if (arme.type == 'armecc') {
|
||||
attackDef = this.getAttaqueData("classique");
|
||||
} else {
|
||||
} else {
|
||||
attackDef = this.getTirData("pose");
|
||||
}
|
||||
|
||||
let rollData = {
|
||||
mode: arme.type,
|
||||
attackDef: attackDef,
|
||||
alias: this.name,
|
||||
alias: this.name,
|
||||
actorImg: this.img,
|
||||
actorId: this.id,
|
||||
img: competence.img,
|
||||
@@ -718,44 +725,44 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
this.addDefaultRoll(rollData)
|
||||
rollData.sr = 14
|
||||
await YggdrasillRollDialog.create( this, rollData);
|
||||
await YggdrasillRollDialog.create(this, rollData);
|
||||
} else {
|
||||
ui.notifications.warn("Arme ou Compétence Martiale non trouvée !", arme, compName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getEncTotal( ) {
|
||||
getEncTotal() {
|
||||
let encTotal = 0;
|
||||
for( let item of this.items) {
|
||||
for (let item of this.items) {
|
||||
if (item.type == "equipement" || item.type == "armecc"
|
||||
|| item.type == "armedist" || item.type == "armure" || item.type == "monnaie" || item.type == "bouclier") {
|
||||
encTotal += (item.system.enc * item.system.quantite);
|
||||
|| item.type == "armedist" || item.type == "armure" || item.type == "monnaie" || item.type == "bouclier") {
|
||||
encTotal += (item.system.enc * (item.system.quantite || 1));
|
||||
}
|
||||
}
|
||||
for( let item of this.items) {
|
||||
for (let item of this.items) {
|
||||
if (item.type == "bouclier" && item.system.equipe) {
|
||||
encTotal -= (item.system.enc * item.system.quantite);
|
||||
encTotal += (item.system.enccomb * item.system.quantite);
|
||||
encTotal -= (item.system.enc * (item.system.quantite || 1));
|
||||
encTotal += (item.system.enccomb * (item.system.quantite || 1));
|
||||
}
|
||||
}
|
||||
return encTotal;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getProtectionTotal( ) {
|
||||
getProtectionTotal() {
|
||||
let protectionTotal = 0;
|
||||
for( let item of this.items) {
|
||||
for (let item of this.items) {
|
||||
if (item.type == "armure" && item.system.equipe) {
|
||||
protectionTotal += Number(item.system.protection);
|
||||
}
|
||||
}
|
||||
return protectionTotal;
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getDpBouclier( ) {
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
getDpBouclier() {
|
||||
let dpBouclier = 0;
|
||||
for( let item of this.items) {
|
||||
for (let item of this.items) {
|
||||
if (item.type == "bouclier" && item.system.equipe) {
|
||||
dpBouclier += Number(item.system.defensebonus);
|
||||
}
|
||||
@@ -764,22 +771,22 @@ export class YggdrasillActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async incrementeQuantite( objetId ) {
|
||||
let objetQ = this.items.find( item => item.id == objetId );
|
||||
async incrementeQuantite(objetId) {
|
||||
let objetQ = this.items.find(item => item.id == objetId);
|
||||
if (objetQ) {
|
||||
let newQ = objetQ.system.quantite + 1;
|
||||
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'system.quantite': newQ }]); // pdates one EmbeddedEntity
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async decrementeQuantite( objetId ) {
|
||||
let objetQ = this.items.find( item => item.id == objetId );
|
||||
async decrementeQuantite(objetId) {
|
||||
let objetQ = this.items.find(item => item.id == objetId);
|
||||
if (objetQ) {
|
||||
let newQ = objetQ.system.quantite - 1;
|
||||
newQ = (newQ <= 0) ? 0 : newQ;
|
||||
const updated = await this.updateEmbeddedDocuments('Item', [{ _id: objetQ.id, 'system.quantite': newQ }]); // pdates one EmbeddedEntity
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ export class YggdrasillCombat extends Combat {
|
||||
/* -------------------------------------------- */
|
||||
async rollInitiative(ids, formula = undefined, messageOptions = {} ) {
|
||||
ids = typeof ids === "string" ? [ids] : ids;
|
||||
const currentId = this.combatant._id;
|
||||
const currentId = this.combatant?.id;
|
||||
for (let cId = 0; cId < ids.length; cId++) {
|
||||
const c = this.combatants.get(ids[cId]);
|
||||
let initBonus = c.actor ? c.actor.getInitiativeScore() : 0;
|
||||
@@ -17,7 +17,7 @@ export class YggdrasillCombat extends Combat {
|
||||
}
|
||||
if (roll.total <= 0) roll.total = 0;
|
||||
//console.log("Compute init for", roll.total);
|
||||
let id = c._id || c.id;
|
||||
let id = c.id;
|
||||
await this.updateEmbeddedDocuments("Combatant", [{ _id: id, initiative: roll.total }]);
|
||||
|
||||
// Send a chat message
|
||||
@@ -25,9 +25,9 @@ export class YggdrasillCombat extends Combat {
|
||||
let messageData = foundry.utils.mergeObject(
|
||||
{
|
||||
speaker: {
|
||||
scene: canvas.scene._id,
|
||||
actor: c.actor ? c.actor._id : null,
|
||||
token: c.token._id,
|
||||
scene: canvas.scene.id,
|
||||
actor: c.actor ? c.actor.id : null,
|
||||
token: c.token.id,
|
||||
alias: c.token.name,
|
||||
sound: CONFIG.sounds.dice,
|
||||
},
|
||||
|
||||
@@ -137,7 +137,7 @@ Hooks.once("ready", function () {
|
||||
ui.notifications.info("Attention ! Vous n'est connecté à aucun personnage");
|
||||
ChatMessage.create({
|
||||
content: "<b>WARNING</b> Le joueur " + game.user.name + " n'est pas connecté à un personnage !",
|
||||
user: game.user._id
|
||||
user: game.user.id
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ export class YggdrasillUtility {
|
||||
static async preloadHandlebarsTemplates() {
|
||||
|
||||
const templatePaths = [
|
||||
'systems/fvtt-yggdrasill/templates/actor-sheet.html',
|
||||
'systems/fvtt-yggdrasill/templates/actor-personnage-sheet.hbs',
|
||||
'systems/fvtt-yggdrasill/templates/editor-notes-gm.html'
|
||||
]
|
||||
return foundry.applications.handlebars.loadTemplates(templatePaths);
|
||||
@@ -162,7 +162,7 @@ export class YggdrasillUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async rollYggdrasill( rollData ) {
|
||||
let sumDice = ( rollData.isEpuise | rollData.isMeurtri) ? 1 : 2;
|
||||
let sumDice = ( rollData.isEpuise || rollData.isMeurtri) ? 1 : 2;
|
||||
|
||||
// Init stuff
|
||||
let isCritical = false;
|
||||
@@ -283,7 +283,7 @@ export class YggdrasillUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getUsers(filter) {
|
||||
return game.users.filter(filter).map(user => user.system._id);
|
||||
return game.users.filter(filter).map(user => user.id);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
static getWhisperRecipients(rollMode, name) {
|
||||
|
||||
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.324856 7fd4637fe6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.334440 7fd4637fe6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.334494 7fd4637fe6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.508921 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.508963 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.514976 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.515163 7fd4627fc6c0 Manual compaction at level-0 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.515223 7fd4627fc6c0 Manual compaction at level-1 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.686682 7fcfbebfe6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.547142 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.547164 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.554026 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.577068 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at '!items!x3aMYeKa73GxJ1Ge' @ 45 : 1
|
||||
2026/04/01-22:51:01.577076 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.580113 7fcfbd3fb6c0 Generated table #65@0: 15 keys, 2327 bytes
|
||||
2026/04/01-22:51:01.580125 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 2327 bytes
|
||||
2026/04/01-22:51:01.586007 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.586098 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.606413 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!x3aMYeKa73GxJ1Ge' @ 45 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:15.534956 7fd478fff6c0 Recovering log #43
|
||||
2026/01/10-23:11:15.588401 7fd478fff6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:15.588486 7fd478fff6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:56.958843 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:56.958872 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:57.022608 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:57.022770 7fd4627fc6c0 Manual compaction at level-0 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:57.022811 7fd4627fc6c0 Manual compaction at level-1 from '!items!3VBHojfjdD504ibv' @ 72057594037927935 : 1 .. '!items!x3aMYeKa73GxJ1Ge' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.671549 7fcfbebfe6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.671646 7fcfbebfe6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/armes/000059.log: OK
|
||||
2026/04/01-22:41:42.671700 7fcfbebfe6c0 Table #40: 15 entries OK
|
||||
2026/04/01-22:41:42.674961 7fcfbebfe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/armes; recovered 1 files; 2327 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/armes/MANIFEST-000061
Normal file
BIN
packs/armes/MANIFEST-000061
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.336786 7fd462ffd6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.346917 7fd462ffd6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.347006 7fd462ffd6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.528136 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.528192 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.534692 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.541091 7fd4627fc6c0 Manual compaction at level-0 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.541131 7fd4627fc6c0 Manual compaction at level-1 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.704920 7fcfbf3ff6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.606510 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.606535 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.613032 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.632412 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at '!items!qUXBrstsh5Oo8FEx' @ 24 : 1
|
||||
2026/04/01-22:51:01.632421 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.635699 7fcfbd3fb6c0 Generated table #65@0: 8 keys, 3197 bytes
|
||||
2026/04/01-22:51:01.635720 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 3197 bytes
|
||||
2026/04/01-22:51:01.641765 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.641877 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.672309 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!qUXBrstsh5Oo8FEx' @ 24 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:15.590605 7fd4637fe6c0 Recovering log #43
|
||||
2026/01/10-23:11:15.651052 7fd4637fe6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:15.651127 7fd4637fe6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:57.022896 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:57.022927 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:57.068574 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:57.175347 7fd4627fc6c0 Manual compaction at level-0 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:57.175395 7fd4627fc6c0 Manual compaction at level-1 from '!items!4YGPuZ813BWQaNbq' @ 72057594037927935 : 1 .. '!items!qUXBrstsh5Oo8FEx' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.689771 7fcfbf3ff6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.689873 7fcfbf3ff6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/armures/000059.log: OK
|
||||
2026/04/01-22:41:42.689938 7fcfbf3ff6c0 Table #40: 8 entries OK
|
||||
2026/04/01-22:41:42.693096 7fcfbf3ff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/armures; recovered 1 files; 3197 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/armures/MANIFEST-000061
Normal file
BIN
packs/armures/MANIFEST-000061
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.312395 7fd463fff6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.322989 7fd463fff6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.323061 7fd463fff6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.501777 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.501807 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.508771 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.515149 7fd4627fc6c0 Manual compaction at level-0 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.515211 7fd4627fc6c0 Manual compaction at level-1 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.668433 7fcfbdbfc6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.540998 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.541046 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.547060 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.566722 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at '!items!swTZ43FJRWkqjR75' @ 45 : 1
|
||||
2026/04/01-22:51:01.566735 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.570029 7fcfbd3fb6c0 Generated table #65@0: 15 keys, 4373 bytes
|
||||
2026/04/01-22:51:01.570048 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 4373 bytes
|
||||
2026/04/01-22:51:01.576800 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.576950 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.606402 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!swTZ43FJRWkqjR75' @ 45 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:15.481460 7fd463fff6c0 Recovering log #43
|
||||
2026/01/10-23:11:15.532751 7fd463fff6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:15.532810 7fd463fff6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:56.893350 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:56.893388 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:56.958710 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:57.022759 7fd4627fc6c0 Manual compaction at level-0 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:57.022800 7fd4627fc6c0 Manual compaction at level-1 from '!items!4rM9IvDuijsjbAhI' @ 72057594037927935 : 1 .. '!items!swTZ43FJRWkqjR75' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.652980 7fcfbdbfc6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.653141 7fcfbdbfc6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/blessures/000059.log: OK
|
||||
2026/04/01-22:41:42.653213 7fcfbdbfc6c0 Table #40: 15 entries OK
|
||||
2026/04/01-22:41:42.656556 7fcfbdbfc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/blessures; recovered 1 files; 4373 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/blessures/MANIFEST-000061
Normal file
BIN
packs/blessures/MANIFEST-000061
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.238976 7fd4637fe6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.249505 7fd4637fe6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.249563 7fd4637fe6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.489412 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.489449 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.495431 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.515115 7fd4627fc6c0 Manual compaction at level-0 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.515177 7fd4627fc6c0 Manual compaction at level-1 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.545198 7fcfbdbfc6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.489437 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.489459 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.495384 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.521152 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at '!items!ylqZMDyXujUlSorr' @ 90 : 1
|
||||
2026/04/01-22:51:01.521160 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.524489 7fcfbd3fb6c0 Generated table #65@0: 30 keys, 18501 bytes
|
||||
2026/04/01-22:51:01.524512 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 18501 bytes
|
||||
2026/04/01-22:51:01.531301 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.531388 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.540868 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!ylqZMDyXujUlSorr' @ 90 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:15.082653 7fd4637fe6c0 Recovering log #43
|
||||
2026/01/10-23:11:15.150829 7fd4637fe6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:15.150897 7fd4637fe6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:56.587172 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:56.587208 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:56.640280 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:56.769281 7fd4627fc6c0 Manual compaction at level-0 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:56.769318 7fd4627fc6c0 Manual compaction at level-1 from '!items!26CQEICWZs8Gw4Xi' @ 72057594037927935 : 1 .. '!items!ylqZMDyXujUlSorr' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.426252 7fcfbdbfc6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.426381 7fcfbdbfc6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/competences-generales/000059.log: OK
|
||||
2026/04/01-22:41:42.426460 7fcfbdbfc6c0 Table #40: 30 entries OK
|
||||
2026/04/01-22:41:42.430037 7fcfbdbfc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/competences-generales; recovered 1 files; 18501 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/competences-generales/MANIFEST-000061
Normal file
BIN
packs/competences-generales/MANIFEST-000061
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.263695 7fd462ffd6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.273321 7fd462ffd6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.273380 7fd462ffd6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.475468 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.475500 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.482505 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.489246 7fd4627fc6c0 Manual compaction at level-0 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.489296 7fd4627fc6c0 Manual compaction at level-1 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.586177 7fcfbf3ff6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.495499 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.495526 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.501507 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.531476 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at '!items!mIBiTKqfqiiepeyz' @ 9 : 1
|
||||
2026/04/01-22:51:01.531484 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.534603 7fcfbd3fb6c0 Generated table #65@0: 3 keys, 1604 bytes
|
||||
2026/04/01-22:51:01.534642 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 1604 bytes
|
||||
2026/04/01-22:51:01.540569 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.540687 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.540878 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!mIBiTKqfqiiepeyz' @ 9 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:15.230349 7fd463fff6c0 Recovering log #43
|
||||
2026/01/10-23:11:15.289420 7fd463fff6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:15.289495 7fd463fff6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:56.831880 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:56.831912 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:56.893147 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:57.022746 7fd4627fc6c0 Manual compaction at level-0 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:57.022788 7fd4627fc6c0 Manual compaction at level-1 from '!items!RAhkadJOfEnVBLpy' @ 72057594037927935 : 1 .. '!items!mIBiTKqfqiiepeyz' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.569732 7fcfbf3ff6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.569913 7fcfbf3ff6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/competences-magiques/000059.log: OK
|
||||
2026/04/01-22:41:42.569980 7fcfbf3ff6c0 Table #40: 3 entries OK
|
||||
2026/04/01-22:41:42.573380 7fcfbf3ff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/competences-magiques; recovered 1 files; 1604 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/competences-magiques/MANIFEST-000061
Normal file
BIN
packs/competences-magiques/MANIFEST-000061
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.251489 7fd478fff6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.261390 7fd478fff6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.261445 7fd478fff6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.463016 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.463081 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.469148 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.489211 7fd4627fc6c0 Manual compaction at level-0 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.489274 7fd4627fc6c0 Manual compaction at level-1 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.566216 7fcfbf3ff6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.476136 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.476206 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.482761 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.501617 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at '!items!mJSWXawEGARKlNja' @ 24 : 1
|
||||
2026/04/01-22:51:01.501625 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.505026 7fcfbd3fb6c0 Generated table #65@0: 8 keys, 3895 bytes
|
||||
2026/04/01-22:51:01.505047 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 3895 bytes
|
||||
2026/04/01-22:51:01.511271 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.511394 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.540842 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!mJSWXawEGARKlNja' @ 24 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:15.153190 7fd478fff6c0 Recovering log #43
|
||||
2026/01/10-23:11:15.227932 7fd478fff6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:15.227994 7fd478fff6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:56.530051 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:56.530093 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:56.587073 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:56.769266 7fd4627fc6c0 Manual compaction at level-0 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:56.769333 7fd4627fc6c0 Manual compaction at level-1 from '!items!6IqVsJsYPrbxUJZX' @ 72057594037927935 : 1 .. '!items!mJSWXawEGARKlNja' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.548590 7fcfbf3ff6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.548732 7fcfbf3ff6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/competences-martiales/000059.log: OK
|
||||
2026/04/01-22:41:42.548798 7fcfbf3ff6c0 Table #40: 8 entries OK
|
||||
2026/04/01-22:41:42.552583 7fcfbf3ff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/competences-martiales; recovered 1 files; 3895 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/competences-martiales/MANIFEST-000061
Normal file
BIN
packs/competences-martiales/MANIFEST-000061
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.288420 7fd478fff6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.298405 7fd478fff6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.298472 7fd478fff6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.469291 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.469324 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.475328 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.489231 7fd4627fc6c0 Manual compaction at level-0 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.489285 7fd4627fc6c0 Manual compaction at level-1 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.628340 7fcfbf3ff6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.554115 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.554138 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.560348 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.586192 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at '!items!wnIXKyfqCWT0r4iT' @ 90 : 1
|
||||
2026/04/01-22:51:01.586200 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.589427 7fcfbd3fb6c0 Generated table #65@0: 30 keys, 8204 bytes
|
||||
2026/04/01-22:51:01.589447 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 8204 bytes
|
||||
2026/04/01-22:51:01.596772 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.596868 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.606424 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!wnIXKyfqCWT0r4iT' @ 90 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:15.350218 7fd4637fe6c0 Recovering log #43
|
||||
2026/01/10-23:11:15.412029 7fd4637fe6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:15.412130 7fd4637fe6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:56.705345 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:56.705375 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:56.769105 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:56.769305 7fd4627fc6c0 Manual compaction at level-0 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:56.769351 7fd4627fc6c0 Manual compaction at level-1 from '!items!1EVz9C1fDUBafPHj' @ 72057594037927935 : 1 .. '!items!wnIXKyfqCWT0r4iT' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.611200 7fcfbf3ff6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.611350 7fcfbf3ff6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/dons/000059.log: OK
|
||||
2026/04/01-22:41:42.611419 7fcfbf3ff6c0 Table #40: 30 entries OK
|
||||
2026/04/01-22:41:42.615200 7fcfbf3ff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/dons; recovered 1 files; 8204 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/dons/MANIFEST-000061
Normal file
BIN
packs/dons/MANIFEST-000061
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.479236 7fd463fff6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.489180 7fd463fff6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.489248 7fd463fff6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.573677 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.573703 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.580176 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.593747 7fd4627fc6c0 Manual compaction at level-0 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.593789 7fd4627fc6c0 Manual compaction at level-1 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.908621 7fcfbebfe6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.754431 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.754458 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.760579 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.787168 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at '!items!zC0kHoqZ9lkQFgI6' @ 423 : 1
|
||||
2026/04/01-22:51:01.787176 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.791001 7fcfbd3fb6c0 Generated table #65@0: 141 keys, 22361 bytes
|
||||
2026/04/01-22:51:01.791027 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 22361 bytes
|
||||
2026/04/01-22:51:01.797048 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.797140 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.807669 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!zC0kHoqZ9lkQFgI6' @ 423 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:16.231723 7fd463fff6c0 Recovering log #43
|
||||
2026/01/10-23:11:16.291894 7fd463fff6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:16.291973 7fd463fff6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:57.500337 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:57.500368 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:57.561031 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:57.624346 7fd4627fc6c0 Manual compaction at level-0 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:57.624388 7fd4627fc6c0 Manual compaction at level-1 from '!items!0tELaPFZgkeTUeVn' @ 72057594037927935 : 1 .. '!items!zC0kHoqZ9lkQFgI6' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.893935 7fcfbebfe6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.894040 7fcfbebfe6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/equipement/000059.log: OK
|
||||
2026/04/01-22:41:42.894131 7fcfbebfe6c0 Table #40: 141 entries OK
|
||||
2026/04/01-22:41:42.897218 7fcfbebfe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/equipement; recovered 1 files; 22361 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/equipement/MANIFEST-000061
Normal file
BIN
packs/equipement/MANIFEST-000061
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.300419 7fd462ffd6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.310203 7fd462ffd6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.310271 7fd462ffd6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.495581 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.495613 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.501662 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.515134 7fd4627fc6c0 Manual compaction at level-0 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.515199 7fd4627fc6c0 Manual compaction at level-1 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.648175 7fcfbebfe6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.560449 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.560473 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.566555 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.597000 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at '!items!xf1RAsIzBXQgbLq2' @ 78 : 1
|
||||
2026/04/01-22:51:01.597010 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.600283 7fcfbd3fb6c0 Generated table #65@0: 26 keys, 7080 bytes
|
||||
2026/04/01-22:51:01.600310 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 7080 bytes
|
||||
2026/04/01-22:51:01.606229 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.606307 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.606433 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!xf1RAsIzBXQgbLq2' @ 78 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:15.414572 7fd462ffd6c0 Recovering log #43
|
||||
2026/01/10-23:11:15.478943 7fd462ffd6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:15.479024 7fd462ffd6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:56.769456 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:56.769503 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:56.831755 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:57.022732 7fd4627fc6c0 Manual compaction at level-0 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:57.022780 7fd4627fc6c0 Manual compaction at level-1 from '!items!0EoL2kcGdYiYS8lY' @ 72057594037927935 : 1 .. '!items!xf1RAsIzBXQgbLq2' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.631882 7fcfbebfe6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.632028 7fcfbebfe6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/faiblesses/000059.log: OK
|
||||
2026/04/01-22:41:42.632100 7fcfbebfe6c0 Table #40: 26 entries OK
|
||||
2026/04/01-22:41:42.635690 7fcfbebfe6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/faiblesses; recovered 1 files; 7080 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/faiblesses/MANIFEST-000061
Normal file
BIN
packs/faiblesses/MANIFEST-000061
Normal file
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.466539 7fd478fff6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.476924 7fd478fff6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.476983 7fd478fff6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.567455 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.567481 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.573559 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.593729 7fd4627fc6c0 Manual compaction at level-0 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.593781 7fd4627fc6c0 Manual compaction at level-1 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.891187 7fcfbdbfc6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.747339 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.747364 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.754314 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.777888 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at '!items!xw2gPhCxDVpkJnxL' @ 15 : 1
|
||||
2026/04/01-22:51:01.777903 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.780970 7fcfbd3fb6c0 Generated table #65@0: 5 keys, 1937 bytes
|
||||
2026/04/01-22:51:01.780984 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 1937 bytes
|
||||
2026/04/01-22:51:01.786986 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.787074 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.807656 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!xw2gPhCxDVpkJnxL' @ 15 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:16.181750 7fd462ffd6c0 Recovering log #43
|
||||
2026/01/10-23:11:16.229040 7fd462ffd6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:16.229115 7fd462ffd6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:57.561274 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:57.561302 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:57.624170 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:57.624357 7fd4627fc6c0 Manual compaction at level-0 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:57.624398 7fd4627fc6c0 Manual compaction at level-1 from '!items!7VeQIQHxvw233Jzt' @ 72057594037927935 : 1 .. '!items!xw2gPhCxDVpkJnxL' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.876048 7fcfbdbfc6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.876183 7fcfbdbfc6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/galdr-charme/000059.log: OK
|
||||
2026/04/01-22:41:42.876243 7fcfbdbfc6c0 Table #40: 5 entries OK
|
||||
2026/04/01-22:41:42.879462 7fcfbdbfc6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/galdr-charme; recovered 1 files; 1937 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/galdr-charme/MANIFEST-000061
Normal file
BIN
packs/galdr-charme/MANIFEST-000061
Normal file
Binary file not shown.
0
packs/galdr-illusions/000063.log
Normal file
0
packs/galdr-illusions/000063.log
Normal file
@@ -1 +1 @@
|
||||
MANIFEST-000049
|
||||
MANIFEST-000061
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
2026/01/11-22:38:18.454793 7fd4637fe6c0 Recovering log #47
|
||||
2026/01/11-22:38:18.464425 7fd4637fe6c0 Delete type=3 #45
|
||||
2026/01/11-22:38:18.464476 7fd4637fe6c0 Delete type=0 #47
|
||||
2026/01/11-22:39:21.580301 7fd4627fc6c0 Level-0 table #52: started
|
||||
2026/01/11-22:39:21.580327 7fd4627fc6c0 Level-0 table #52: 0 bytes OK
|
||||
2026/01/11-22:39:21.587371 7fd4627fc6c0 Delete type=0 #50
|
||||
2026/01/11-22:39:21.593760 7fd4627fc6c0 Manual compaction at level-0 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:39:21.593798 7fd4627fc6c0 Manual compaction at level-1 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.873011 7fcfbf3ff6c0 Delete type=3 #1
|
||||
2026/04/01-22:51:01.740863 7fcfbd3fb6c0 Level-0 table #64: started
|
||||
2026/04/01-22:51:01.740885 7fcfbd3fb6c0 Level-0 table #64: 0 bytes OK
|
||||
2026/04/01-22:51:01.747240 7fcfbd3fb6c0 Delete type=0 #62
|
||||
2026/04/01-22:51:01.767200 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at '!items!sH7HaKggOEaBVzn3' @ 15 : 1
|
||||
2026/04/01-22:51:01.767215 7fcfbd3fb6c0 Compacting 1@0 + 0@1 files
|
||||
2026/04/01-22:51:01.770464 7fcfbd3fb6c0 Generated table #65@0: 5 keys, 3029 bytes
|
||||
2026/04/01-22:51:01.770483 7fcfbd3fb6c0 Compacted 1@0 + 0@1 files => 3029 bytes
|
||||
2026/04/01-22:51:01.777680 7fcfbd3fb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
||||
2026/04/01-22:51:01.777776 7fcfbd3fb6c0 Delete type=2 #40
|
||||
2026/04/01-22:51:01.807641 7fcfbd3fb6c0 Manual compaction at level-0 from '!items!sH7HaKggOEaBVzn3' @ 15 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end)
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
2026/01/10-23:11:16.124670 7fd478fff6c0 Recovering log #43
|
||||
2026/01/10-23:11:16.179232 7fd478fff6c0 Delete type=3 #41
|
||||
2026/01/10-23:11:16.179295 7fd478fff6c0 Delete type=0 #43
|
||||
2026/01/11-22:24:57.381224 7fd4627fc6c0 Level-0 table #48: started
|
||||
2026/01/11-22:24:57.381256 7fd4627fc6c0 Level-0 table #48: 0 bytes OK
|
||||
2026/01/11-22:24:57.445557 7fd4627fc6c0 Delete type=0 #46
|
||||
2026/01/11-22:24:57.624320 7fd4627fc6c0 Manual compaction at level-0 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end)
|
||||
2026/01/11-22:24:57.624368 7fd4627fc6c0 Manual compaction at level-1 from '!items!89NwqZV3Qn9xWeO0' @ 72057594037927935 : 1 .. '!items!sH7HaKggOEaBVzn3' @ 0 : 0; will stop at (end)
|
||||
2026/04/01-22:41:42.857047 7fcfbf3ff6c0 Log #59: 0 ops saved to Table #60 OK
|
||||
2026/04/01-22:41:42.857168 7fcfbf3ff6c0 Archiving /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/galdr-illusions/000059.log: OK
|
||||
2026/04/01-22:41:42.857244 7fcfbf3ff6c0 Table #40: 5 entries OK
|
||||
2026/04/01-22:41:42.860446 7fcfbf3ff6c0 **** Repaired leveldb /home/morr/foundry/foundrydata-dev/Data/systems/fvtt-yggdrasill/packs/galdr-illusions; recovered 1 files; 3029 bytes. Some data may have been lost. ****
|
||||
|
||||
Binary file not shown.
BIN
packs/galdr-illusions/MANIFEST-000061
Normal file
BIN
packs/galdr-illusions/MANIFEST-000061
Normal file
Binary file not shown.
0
packs/galdr-illusions/lost/000059.log
Normal file
0
packs/galdr-illusions/lost/000059.log
Normal file
0
packs/galdr-maledictions/000063.log
Normal file
0
packs/galdr-maledictions/000063.log
Normal file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user