Update v11/v12 et correction sur le niveau de jeu

This commit is contained in:
LeRatierBretonnien 2024-04-26 19:28:28 +02:00
parent 1e4692e850
commit 51e5a409c4
67 changed files with 231 additions and 241 deletions

View File

@ -11,7 +11,7 @@ export class EcrymeActorSheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-ecryme", "sheet", "actor"], classes: ["fvtt-ecryme", "sheet", "actor"],
template: "systems/fvtt-ecryme/templates/actors/actor-sheet.hbs", template: "systems/fvtt-ecryme/templates/actors/actor-sheet.hbs",
width: 860, width: 860,
@ -33,7 +33,7 @@ export class EcrymeActorSheet extends ActorSheet {
name: this.actor.name, name: this.actor.name,
editable: this.isEditable, editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked", cssClass: this.isEditable ? "editable" : "locked",
system: duplicate(this.object.system), system: foundry.utils.duplicate(this.object.system),
limited: this.object.limited, limited: this.object.limited,
skills: this.actor.prepareSkills(), skills: this.actor.prepareSkills(),
traits: this.actor.getRollTraits(), traits: this.actor.getRollTraits(),
@ -41,17 +41,17 @@ export class EcrymeActorSheet extends ActorSheet {
ideal: this.actor.getIdeal(), ideal: this.actor.getIdeal(),
spleen: this.actor.getSpleen(), spleen: this.actor.getSpleen(),
impacts: this.object.getImpacts(), impacts: this.object.getImpacts(),
config: duplicate(game.system.ecryme.config), config: foundry.utils.duplicate(game.system.ecryme.config),
weapons: this.actor.getWeapons(), weapons: this.actor.getWeapons(),
maneuvers: this.actor.getManeuvers(), maneuvers: this.actor.getManeuvers(),
impactsMalus: this.actor.getImpactsMalus(), impactsMalus: this.actor.getImpactsMalus(),
archetype: duplicate(this.actor.getArchetype()), archetype: foundry.utils.duplicate(this.actor.getArchetype()),
equipments: this.actor.getEquipments(), equipments: this.actor.getEquipments(),
hasCephaly: EcrymeUtility.hasCephaly(), hasCephaly: EcrymeUtility.hasCephaly(),
hasBoheme: EcrymeUtility.hasBoheme(), hasBoheme: EcrymeUtility.hasBoheme(),
hasAmertume: EcrymeUtility.hasAmertume(), hasAmertume: EcrymeUtility.hasAmertume(),
cephalySkills: this.actor.getCephalySkills(), cephalySkills: this.actor.getCephalySkills(),
subActors: duplicate(this.actor.getSubActors()), subActors: foundry.utils.duplicate(this.actor.getSubActors()),
annency: this.actor.getAnnency(), annency: this.actor.getAnnency(),
description: await TextEditor.enrichHTML(this.object.system.biodata.description, { async: true }), description: await TextEditor.enrichHTML(this.object.system.biodata.description, { async: true }),
notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, { async: true }), notes: await TextEditor.enrichHTML(this.object.system.biodata.notes, { async: true }),

View File

@ -29,7 +29,7 @@ export class EcrymeActor extends Actor {
if (data instanceof Array) { if (data instanceof Array) {
return super.create(data, options); return super.create(data, options);
} }
// If the created actor has items (only applicable to duplicated actors) bypass the new actor creation logic // If the created actor has items (only applicable to foundry.utils.duplicated actors) bypass the new actor creation logic
if (data.items) { if (data.items) {
let actor = super.create(data, options); let actor = super.create(data, options);
return actor; return actor;
@ -73,7 +73,7 @@ export class EcrymeActor extends Actor {
return comp; return comp;
} }
getArchetype() { getArchetype() {
let comp = duplicate(this.items.find(item => item.type == 'archetype') || { name: "Pas d'archetype" }) let comp = foundry.utils.duplicate(this.items.find(item => item.type == 'archetype') || { name: "Pas d'archetype" })
if (comp?.system) { if (comp?.system) {
comp.tarot = EcrymeUtility.getTarot(comp.system.lametutelaire) comp.tarot = EcrymeUtility.getTarot(comp.system.lametutelaire)
} }
@ -92,7 +92,7 @@ export class EcrymeActor extends Actor {
} }
/* ----------------------- --------------------- */ /* ----------------------- --------------------- */
addAnnencyActor(actorId) { addAnnencyActor(actorId) {
let members = duplicate(this.system.base.characters) let members = foundry.utils.duplicate(this.system.base.characters)
members.push(actorId) members.push(actorId)
this.update({ 'system.base.characters': members }) this.update({ 'system.base.characters': members })
} }
@ -103,7 +103,8 @@ export class EcrymeActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
getAnnency() { getAnnency() {
return game.actors.find(a => a.type == 'annency' && a.system.base.characters.includes(this.id)) let annency = game.actors.find(a => a.type == 'annency' && a.system.base.characters.includes(this.id))
return annency || {}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getConfrontations() { getConfrontations() {
@ -135,7 +136,7 @@ export class EcrymeActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareSkills() { prepareSkills() {
let skills = duplicate(this.system.skills) let skills = foundry.utils.duplicate(this.system.skills)
for (let categKey in skills) { for (let categKey in skills) {
let category = skills[categKey] let category = skills[categKey]
for (let skillKey in category.skilllist) { for (let skillKey in category.skilllist) {
@ -147,22 +148,22 @@ export class EcrymeActor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getCephalySkills() { getCephalySkills() {
let skills = duplicate(this.system.cephaly.skilllist) let skills = foundry.utils.duplicate(this.system.cephaly.skilllist)
return skills return skills
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getImpacts() { getImpacts() {
let comp = duplicate(this.items.filter(item => item.type == 'impact') || []) let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'impact') || [])
return comp; return comp;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getWeapons() { getWeapons() {
let comp = duplicate(this.items.filter(item => item.type == 'weapon') || []) let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'weapon') || [])
EcrymeUtility.sortArrayObjectsByName(comp) EcrymeUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
getManeuvers() { getManeuvers() {
let comp = duplicate(this.items.filter(item => item.type == 'maneuver') || []) let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'maneuver') || [])
EcrymeUtility.sortArrayObjectsByName(comp) EcrymeUtility.sortArrayObjectsByName(comp)
return comp; return comp;
} }
@ -170,7 +171,7 @@ export class EcrymeActor extends Actor {
getItemById(id) { getItemById(id) {
let item = this.items.find(item => item.id == id); let item = this.items.find(item => item.id == id);
if (item) { if (item) {
item = duplicate(item) item = foundry.utils.duplicate(item)
} }
return item; return item;
} }
@ -205,7 +206,7 @@ export class EcrymeActor extends Actor {
/* ------------------------------------------- */ /* ------------------------------------------- */
async buildContainerTree() { async buildContainerTree() {
let equipments = duplicate(this.items.filter(item => item.type == "equipment") || []) let equipments = foundry.utils.duplicate(this.items.filter(item => item.type == "equipment") || [])
for (let equip1 of equipments) { for (let equip1 of equipments) {
if (equip1.system.iscontainer) { if (equip1.system.iscontainer) {
equip1.system.contents = [] equip1.system.contents = []
@ -300,13 +301,13 @@ export class EcrymeActor extends Actor {
getSubActors() { getSubActors() {
let subActors = []; let subActors = [];
for (let id of this.system.subactors) { for (let id of this.system.subactors) {
subActors.push(duplicate(game.actors.get(id))) subActors.push(foundry.utils.duplicate(game.actors.get(id)))
} }
return subActors; return subActors;
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async addSubActor(subActorId) { async addSubActor(subActorId) {
let subActors = duplicate(this.system.subactors); let subActors = foundry.utils.duplicate(this.system.subactors);
subActors.push(subActorId); subActors.push(subActorId);
await this.update({ 'system.subactors': subActors }); await this.update({ 'system.subactors': subActors });
} }
@ -377,9 +378,10 @@ export class EcrymeActor extends Actor {
rollData.actorId = this.id rollData.actorId = this.id
rollData.img = this.img rollData.img = this.img
rollData.isReroll = false rollData.isReroll = false
rollData.traits = duplicate(this.getRollTraits()) rollData.config = game.system.ecryme.config
rollData.spleen = duplicate(this.getSpleen() || {}) rollData.traits = foundry.utils.duplicate(this.getRollTraits())
rollData.ideal = duplicate(this.getIdeal() || {}) rollData.spleen = foundry.utils.duplicate(this.getSpleen() || {})
rollData.ideal = foundry.utils.duplicate(this.getIdeal() || {})
rollData.confrontBonus = this.getBonusList() rollData.confrontBonus = this.getBonusList()
return rollData return rollData
@ -400,9 +402,14 @@ export class EcrymeActor extends Actor {
} }
} else { } else {
skill = this.system.skills[categKey].skilllist[skillKey] skill = this.system.skills[categKey].skilllist[skillKey]
skill = duplicate(skill) skill = foundry.utils.duplicate(skill)
skill.spec = this.getSpecializations(skillKey) skill.spec = this.getSpecializations(skillKey)
} }
rollData.skillLevelOptions = [];
for (let i=0; i<=skill.value; i++) {
rollData.skillLevelOptions[i] = `${i}`
}
skill.categKey = categKey skill.categKey = categKey
skill.skillKey = skillKey skill.skillKey = skillKey
@ -427,7 +434,7 @@ export class EcrymeActor extends Actor {
let spec = this.items.find(it => it.type == "specialization" && it.id == specId) let spec = this.items.find(it => it.type == "specialization" && it.id == specId)
rollData.mode = "skill" rollData.mode = "skill"
rollData.selectedSpecs = [spec.id] rollData.selectedSpecs = [spec.id]
rollData.forcedSpec = duplicate(spec) rollData.forcedSpec = foundry.utils.duplicate(spec)
rollData.title = game.i18n.localize(rollData.skill.name) rollData.title = game.i18n.localize(rollData.skill.name)
this.startRoll(rollData).catch("Error on startRoll") this.startRoll(rollData).catch("Error on startRoll")
} }
@ -440,8 +447,8 @@ export class EcrymeActor extends Actor {
rollData.executionTotal = rollData.skill.value rollData.executionTotal = rollData.skill.value
rollData.preservationTotal = rollData.skill.value rollData.preservationTotal = rollData.skill.value
rollData.applyTranscendence = "execution" rollData.applyTranscendence = "execution"
rollData.traitsBonus = duplicate(rollData.traits) rollData.traitsBonus = foundry.utils.duplicate(rollData.traits)
rollData.traitsMalus = duplicate(rollData.traits) rollData.traitsMalus = foundry.utils.duplicate(rollData.traits)
let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData) let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData)
confrontStartDialog.render(true) confrontStartDialog.render(true)
} }
@ -449,17 +456,16 @@ export class EcrymeActor extends Actor {
async rollCephalySkillConfront(skillKey) { async rollCephalySkillConfront(skillKey) {
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
rollData.mode = "cephaly" rollData.mode = "cephaly"
rollData.skill = duplicate(this.system.cephaly.skilllist[skillKey]) rollData.skill = foundry.utils.duplicate(this.system.cephaly.skilllist[skillKey])
rollData.annency = duplicate(this.getAnnency()) rollData.annency = foundry.utils.duplicate(this.getAnnency())
rollData.img = rollData.skill.img rollData.img = rollData.skill.img
rollData.skill.categKey = "cephaly" rollData.skill.categKey = "cephaly"
rollData.skill.skillKey = skillKey rollData.skill.skillKey = skillKey
//rollData.impactMalus = this.getImpactMalus(categKey)
rollData.title = game.i18n.localize("ECRY.ui.cephaly") + " : " + game.i18n.localize(rollData.skill.name) rollData.title = game.i18n.localize("ECRY.ui.cephaly") + " : " + game.i18n.localize(rollData.skill.name)
rollData.executionTotal = rollData.skill.value rollData.executionTotal = rollData.skill.value
rollData.preservationTotal = rollData.skill.value rollData.preservationTotal = rollData.skill.value
rollData.traitsBonus = duplicate(rollData.traits) rollData.traitsBonus = foundry.utils.duplicate(rollData.traits)
rollData.traitsMalus = duplicate(rollData.traits) rollData.traitsMalus = foundry.utils.duplicate(rollData.traits)
rollData.applyTranscendence = "execution" rollData.applyTranscendence = "execution"
let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData) let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData)
confrontStartDialog.render(true) confrontStartDialog.render(true)
@ -475,12 +481,12 @@ export class EcrymeActor extends Actor {
rollData = this.getCommonSkill("physical", "shooting") rollData = this.getCommonSkill("physical", "shooting")
} }
rollData.mode = "weapon" rollData.mode = "weapon"
rollData.weapon = duplicate(weapon) rollData.weapon = foundry.utils.duplicate(weapon)
rollData.title = game.i18n.localize("ECRY.ui.confrontation") + " : " + game.i18n.localize(rollData.skill.name) rollData.title = game.i18n.localize("ECRY.ui.confrontation") + " : " + game.i18n.localize(rollData.skill.name)
rollData.executionTotal = rollData.skill.value rollData.executionTotal = rollData.skill.value
rollData.preservationTotal = rollData.skill.value rollData.preservationTotal = rollData.skill.value
rollData.traitsBonus = duplicate(rollData.traits) rollData.traitsBonus = foundry.utils.duplicate(rollData.traits)
rollData.traitsMalus = duplicate(rollData.traits) rollData.traitsMalus = foundry.utils.duplicate(rollData.traits)
rollData.applyTranscendence = "execution" rollData.applyTranscendence = "execution"
let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData) let confrontStartDialog = await EcrymeConfrontStartDialog.create(this, rollData)
confrontStartDialog.render(true) confrontStartDialog.render(true)
@ -490,12 +496,12 @@ export class EcrymeActor extends Actor {
rollWeapon(weaponId) { rollWeapon(weaponId) {
let weapon = this.items.get(weaponId) let weapon = this.items.get(weaponId)
if (weapon) { if (weapon) {
weapon = duplicate(weapon) weapon = foundry.utils.duplicate(weapon)
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
if (weapon.system.armetype == "mainsnues" || weapon.system.armetype == "epee") { if (weapon.system.armetype == "mainsnues" || weapon.system.armetype == "epee") {
rollData.attr = { label: "(Physique+Habilité)/2", value: Math.floor((this.getPhysiqueMalus() + this.system.attributs.physique.value + this.system.attributs.habilite.value) / 2) } rollData.attr = { label: "(Physique+Habilité)/2", value: Math.floor((this.getPhysiqueMalus() + this.system.attributs.physique.value + this.system.attributs.habilite.value) / 2) }
} else { } else {
rollData.attr = duplicate(this.system.attributs.habilite) rollData.attr = foundry.utils.duplicate(this.system.attributs.habilite)
} }
rollData.mode = "weapon" rollData.mode = "weapon"
rollData.weapon = weapon rollData.weapon = weapon

View File

@ -11,7 +11,7 @@ export class EcrymeAnnencySheet extends ActorSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-ecryme", "sheet", "actor"], classes: ["fvtt-ecryme", "sheet", "actor"],
template: "systems/fvtt-ecryme/templates/actors/annency-sheet.hbs", template: "systems/fvtt-ecryme/templates/actors/annency-sheet.hbs",
width: 640, width: 640,
@ -33,9 +33,9 @@ export class EcrymeAnnencySheet extends ActorSheet {
name: this.actor.name, name: this.actor.name,
editable: this.isEditable, editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked", cssClass: this.isEditable ? "editable" : "locked",
system: duplicate(this.object.system), system: foundry.utils.duplicate(this.object.system),
limited: this.object.limited, limited: this.object.limited,
config: duplicate(game.system.ecryme.config), config: foundry.utils.duplicate(game.system.ecryme.config),
hasCephaly: EcrymeUtility.hasCephaly(), hasCephaly: EcrymeUtility.hasCephaly(),
hasBoheme: EcrymeUtility.hasBoheme(), hasBoheme: EcrymeUtility.hasBoheme(),
hasAmertume: EcrymeUtility.hasAmertume(), hasAmertume: EcrymeUtility.hasAmertume(),

View File

@ -43,7 +43,7 @@ export class EcrymeCharacterSummary extends Application {
/* -------------------------------------------- */ /* -------------------------------------------- */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
template: "systems/fvtt-ecryme/templates/dialogs/character-summary.hbs", template: "systems/fvtt-ecryme/templates/dialogs/character-summary.hbs",
popOut: true, popOut: true,
resizable: true, resizable: true,

View File

@ -57,6 +57,20 @@ export const ECRYME_CONFIG = {
"lige": {name: "ECRY.ui.lige", value: 100 }, "lige": {name: "ECRY.ui.lige", value: 100 },
"hurle": {name: "ECRY.ui.hurle", value: 10 }, "hurle": {name: "ECRY.ui.hurle", value: 10 },
"coin": {name: "ECRY.ui.coin", value: 1 } "coin": {name: "ECRY.ui.coin", value: 1 }
} },
transcendanceOptions: {
"execution": "ECRY.ui.execution",
"preservation": "EC,RY.ui.preservation"
},
bonusMalusPersoOptions: [
{value: "-3", label: "-3"},
{value: "-2", label: "-2"},
{value: "-1", label: "-1"},
{value: "0", label: "0"},
{value: "+1", label: "+1"},
{value: "+2", label: "+2"},
{value: "+3", label: "+3"}
]
} }

View File

@ -97,6 +97,7 @@ export class EcrymeUtility {
"level_b": game.i18n.localize("ECRY.settings.boheme"), "level_b": game.i18n.localize("ECRY.settings.boheme"),
"level_a": game.i18n.localize("ECRY.settings.amertume"), "level_a": game.i18n.localize("ECRY.settings.amertume"),
}, },
default: "level_a",
restricted: true restricted: true
}) })
@ -126,7 +127,7 @@ export class EcrymeUtility {
for (let categKey in game.data.template.Actor.templates.core.skills) { for (let categKey in game.data.template.Actor.templates.core.skills) {
let category = game.data.template.Actor.templates.core.skills[categKey] let category = game.data.template.Actor.templates.core.skills[categKey]
for (let skillKey in category.skilllist) { for (let skillKey in category.skilllist) {
let skill = duplicate(category.skilllist[skillKey]) let skill = foundry.utils.duplicate(category.skilllist[skillKey])
skill.categKey = categKey // Auto reference the category skill.categKey = categKey // Auto reference the category
game.system.ecryme.config.skills[skillKey] = skill game.system.ecryme.config.skills[skillKey] = skill
} }
@ -404,7 +405,7 @@ export class EcrymeUtility {
let id = rollData.rollId let id = rollData.rollId
let oldRollData = this.rollDataStore[id] || {} let oldRollData = this.rollDataStore[id] || {}
let newRollData = mergeObject(oldRollData, rollData) let newRollData = foundry.utils.mergeObject(oldRollData, rollData)
this.rollDataStore[id] = newRollData this.rollDataStore[id] = newRollData
} }
@ -565,9 +566,9 @@ export class EcrymeUtility {
let diceFormula = this.computeRollFormula(rollData, actor) let diceFormula = this.computeRollFormula(rollData, actor)
// Performs roll // Performs roll
let myRoll = new Roll(diceFormula).roll({ async: false }) let myRoll = await new Roll(diceFormula).roll()
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = duplicate(myRoll) rollData.roll = foundry.utils.duplicate(myRoll)
rollData.total = myRoll.total rollData.total = myRoll.total
rollData.diceSum = myRoll.terms[0].total rollData.diceSum = myRoll.terms[0].total
@ -682,7 +683,7 @@ export class EcrymeUtility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static getBasicRollData() { static getBasicRollData() {
let rollData = { let rollData = {
rollId: randomID(16), rollId: foundry.utils.randomID(16),
type: "roll-data", type: "roll-data",
bonusMalusPerso: 0, bonusMalusPerso: 0,
bonusMalusSituation: 0, bonusMalusSituation: 0,
@ -695,7 +696,7 @@ export class EcrymeUtility {
useSpleen: false, useSpleen: false,
useIdeal: false, useIdeal: false,
impactMalus: 0, impactMalus: 0,
config: duplicate(game.system.ecryme.config) config: foundry.utils.duplicate(game.system.ecryme.config)
} }
EcrymeUtility.updateWithTarget(rollData) EcrymeUtility.updateWithTarget(rollData)
return rollData return rollData

View File

@ -6,7 +6,7 @@ export class EcrymeConfrontDialog extends Dialog {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async create(actor, rollData) { static async create(actor, rollData) {
let options = mergeObject(super.defaultOptions, { let options = foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-ecryme ecryme-confrontation-dialog"], classes: ["fvtt-ecryme ecryme-confrontation-dialog"],
dragDrop: [{ dragSelector: ".confront-dice-container", dropSelector: null }], dragDrop: [{ dragSelector: ".confront-dice-container", dropSelector: null }],
width: 620, height: 'fit-content', 'z-index': 99999 width: 620, height: 'fit-content', 'z-index': 99999
@ -192,7 +192,7 @@ export class EcrymeConfrontDialog extends Dialog {
this.processTranscendence() this.processTranscendence()
if (rollData.selectedSpecs && rollData.selectedSpecs.length > 0) { if (rollData.selectedSpecs && rollData.selectedSpecs.length > 0) {
rollData.spec = duplicate(actor.getSpecialization(rollData.selectedSpecs[0])) rollData.spec = foundry.utils.duplicate(actor.getSpecialization(rollData.selectedSpecs[0]))
rollData.specApplied = true rollData.specApplied = true
rollData.executionTotal += 2 rollData.executionTotal += 2
rollData.preservationTotal += 2 rollData.preservationTotal += 2

View File

@ -50,15 +50,15 @@ export class EcrymeConfrontStartDialog extends Dialog {
/* -------------------------------------------- */ /* -------------------------------------------- */
async rollConfront( diceFormula ) { async rollConfront( diceFormula ) {
// Do the initial roll // Do the initial roll
let myRoll = new Roll(diceFormula).roll({async: false}) let myRoll = await new Roll(diceFormula).roll()
await EcrymeUtility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) await EcrymeUtility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
// Fill the available dice table // Fill the available dice table
let rollData = this.rollData let rollData = this.rollData
rollData.roll = duplicate(myRoll) rollData.roll = foundry.utils.duplicate(myRoll)
rollData.availableDices = [] rollData.availableDices = []
for (let result of myRoll.terms[0].results) { for (let result of myRoll.terms[0].results) {
if ( !result.discarded) { if ( !result.discarded) {
let resultDup = duplicate(result) let resultDup = foundry.utils.duplicate(result)
resultDup.location = "mainpool" resultDup.location = "mainpool"
rollData.availableDices.push(resultDup) rollData.availableDices.push(resultDup)
} }

View File

@ -8,7 +8,7 @@ export class EcrymeItemSheet extends ItemSheet {
/** @override */ /** @override */
static get defaultOptions() { static get defaultOptions() {
return mergeObject(super.defaultOptions, { return foundry.utils.mergeObject(super.defaultOptions, {
classes: ["fvtt-ecryme", "sheet", "item"], classes: ["fvtt-ecryme", "sheet", "item"],
template: "systems/fvtt-ecryme/templates/item-sheet.hbs", template: "systems/fvtt-ecryme/templates/item-sheet.hbs",
dragDrop: [{ dragSelector: null, dropSelector: null }], dragDrop: [{ dragSelector: null, dropSelector: null }],
@ -56,8 +56,8 @@ export class EcrymeItemSheet extends ItemSheet {
name: this.object.name, name: this.object.name,
editable: this.isEditable, editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked", cssClass: this.isEditable ? "editable" : "locked",
system: duplicate(this.object.system), system: foundry.utils.duplicate(this.object.system),
config: duplicate(game.system.ecryme.config), config: foundry.utils.duplicate(game.system.ecryme.config),
limited: this.object.limited, limited: this.object.limited,
options: this.options, options: this.options,
owner: this.document.isOwner, owner: this.document.isOwner,
@ -89,7 +89,7 @@ export class EcrymeItemSheet extends ItemSheet {
/* -------------------------------------------- */ /* -------------------------------------------- */
postItem() { postItem() {
let chatData = duplicate(this.item) let chatData = foundry.utils.duplicate(this.item)
if (this.actor) { if (this.actor) {
chatData.actor = { id: this.actor.id }; chatData.actor = { id: this.actor.id };
} }

Binary file not shown.

BIN
packs/equipment/000158.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000146 MANIFEST-000159

View File

@ -1,7 +1,7 @@
2024/03/19-08:59:49.412009 7fe1974006c0 Recovering log #144 2024/04/26-19:22:08.707793 7f89060006c0 Recovering log #156
2024/03/19-08:59:49.422002 7fe1974006c0 Delete type=3 #142 2024/04/26-19:22:08.718085 7f89060006c0 Delete type=3 #154
2024/03/19-08:59:49.422641 7fe1974006c0 Delete type=0 #144 2024/04/26-19:22:08.718160 7f89060006c0 Delete type=0 #156
2024/03/19-09:13:11.433053 7fe18fe006c0 Level-0 table #149: started 2024/04/26-19:25:18.674002 7f88ffe006c0 Level-0 table #162: started
2024/03/19-09:13:11.433076 7fe18fe006c0 Level-0 table #149: 0 bytes OK 2024/04/26-19:25:18.674046 7f88ffe006c0 Level-0 table #162: 0 bytes OK
2024/03/19-09:13:11.439309 7fe18fe006c0 Delete type=0 #147 2024/04/26-19:25:18.715930 7f88ffe006c0 Delete type=0 #160
2024/03/19-09:13:11.449116 7fe18fe006c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end) 2024/04/26-19:25:18.747436 7f88ffe006c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,14 @@
2024/03/19-08:26:23.599709 7fe196a006c0 Recovering log #140 2024/04/26-18:42:26.253704 7f89060006c0 Recovering log #152
2024/03/19-08:26:23.609740 7fe196a006c0 Delete type=3 #138 2024/04/26-18:42:26.264507 7f89060006c0 Delete type=3 #150
2024/03/19-08:26:23.610001 7fe196a006c0 Delete type=0 #140 2024/04/26-18:42:26.264666 7f89060006c0 Delete type=0 #152
2024/03/19-08:59:38.616836 7fe18fe006c0 Level-0 table #145: started 2024/04/26-19:22:04.326808 7f88ffe006c0 Level-0 table #157: started
2024/03/19-08:59:38.616860 7fe18fe006c0 Level-0 table #145: 0 bytes OK 2024/04/26-19:22:04.330698 7f88ffe006c0 Level-0 table #157: 26343 bytes OK
2024/03/19-08:59:38.622855 7fe18fe006c0 Delete type=0 #143 2024/04/26-19:22:04.337326 7f88ffe006c0 Delete type=0 #155
2024/03/19-08:59:38.629513 7fe18fe006c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end) 2024/04/26-19:22:04.358386 7f88ffe006c0 Manual compaction at level-0 from '!folders!1GrTlI1xWvaxdKRI' @ 72057594037927935 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at '!items!zs7krgXhDRndtqbl' @ 338 : 1
2024/04/26-19:22:04.358402 7f88ffe006c0 Compacting 1@0 + 1@1 files
2024/04/26-19:22:04.362396 7f88ffe006c0 Generated table #158@0: 174 keys, 27263 bytes
2024/04/26-19:22:04.362426 7f88ffe006c0 Compacted 1@0 + 1@1 files => 27263 bytes
2024/04/26-19:22:04.368459 7f88ffe006c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2024/04/26-19:22:04.368664 7f88ffe006c0 Delete type=2 #9
2024/04/26-19:22:04.368919 7f88ffe006c0 Delete type=2 #157
2024/04/26-19:22:04.400712 7f88ffe006c0 Manual compaction at level-0 from '!items!zs7krgXhDRndtqbl' @ 338 : 1 .. '!items!zs7krgXhDRndtqbl' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/help/000095.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000083 MANIFEST-000096

View File

@ -1,8 +1,8 @@
2024/03/19-08:59:49.466407 7fe1956006c0 Recovering log #81 2024/04/26-19:22:08.762783 7f89074006c0 Recovering log #93
2024/03/19-08:59:49.476751 7fe1956006c0 Delete type=3 #79 2024/04/26-19:22:08.773921 7f89074006c0 Delete type=3 #91
2024/03/19-08:59:49.476810 7fe1956006c0 Delete type=0 #81 2024/04/26-19:22:08.774007 7f89074006c0 Delete type=0 #93
2024/03/19-09:13:11.469451 7fe18fe006c0 Level-0 table #86: started 2024/04/26-19:25:18.785678 7f88ffe006c0 Level-0 table #99: started
2024/03/19-09:13:11.469477 7fe18fe006c0 Level-0 table #86: 0 bytes OK 2024/04/26-19:25:18.785720 7f88ffe006c0 Level-0 table #99: 0 bytes OK
2024/03/19-09:13:11.476330 7fe18fe006c0 Delete type=0 #84 2024/04/26-19:25:18.821605 7f88ffe006c0 Delete type=0 #97
2024/03/19-09:13:11.476450 7fe18fe006c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end) 2024/04/26-19:25:18.901806 7f88ffe006c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2024/03/19-09:13:11.476467 7fe18fe006c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end) 2024/04/26-19:25:18.901870 7f88ffe006c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,15 @@
2024/03/19-08:26:23.652790 7fe1974006c0 Recovering log #77 2024/04/26-18:42:26.318647 7f8906a006c0 Recovering log #89
2024/03/19-08:26:23.662568 7fe1974006c0 Delete type=3 #75 2024/04/26-18:42:26.329907 7f8906a006c0 Delete type=3 #87
2024/03/19-08:26:23.662632 7fe1974006c0 Delete type=0 #77 2024/04/26-18:42:26.329974 7f8906a006c0 Delete type=0 #89
2024/03/19-08:59:38.642890 7fe18fe006c0 Level-0 table #82: started 2024/04/26-19:22:04.427916 7f88ffe006c0 Level-0 table #94: started
2024/03/19-08:59:38.642925 7fe18fe006c0 Level-0 table #82: 0 bytes OK 2024/04/26-19:22:04.431410 7f88ffe006c0 Level-0 table #94: 2184 bytes OK
2024/03/19-08:59:38.649550 7fe18fe006c0 Delete type=0 #80 2024/04/26-19:22:04.438566 7f88ffe006c0 Delete type=0 #92
2024/03/19-08:59:38.649669 7fe18fe006c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end) 2024/04/26-19:22:04.449035 7f88ffe006c0 Manual compaction at level-0 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)
2024/03/19-08:59:38.649688 7fe18fe006c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end) 2024/04/26-19:22:04.449082 7f88ffe006c0 Manual compaction at level-1 from '!journal!wooTFYjEwh83FwgT' @ 72057594037927935 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 14 : 1
2024/04/26-19:22:04.449091 7f88ffe006c0 Compacting 1@1 + 1@2 files
2024/04/26-19:22:04.452506 7f88ffe006c0 Generated table #95@1: 4 keys, 2184 bytes
2024/04/26-19:22:04.452542 7f88ffe006c0 Compacted 1@1 + 1@2 files => 2184 bytes
2024/04/26-19:22:04.458702 7f88ffe006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/26-19:22:04.458800 7f88ffe006c0 Delete type=2 #74
2024/04/26-19:22:04.458954 7f88ffe006c0 Delete type=2 #94
2024/04/26-19:22:04.482775 7f88ffe006c0 Manual compaction at level-1 from '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 14 : 1 .. '!journal.pages!wooTFYjEwh83FwgT.xhc7hqoL8kdW6lrD' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/help/MANIFEST-000096 Normal file

Binary file not shown.

Binary file not shown.

BIN
packs/maneuvers/000158.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000146 MANIFEST-000159

View File

@ -1,7 +1,7 @@
2024/03/19-08:59:49.453929 7fe1974006c0 Recovering log #144 2024/04/26-19:22:08.749669 7f8906a006c0 Recovering log #156
2024/03/19-08:59:49.464351 7fe1974006c0 Delete type=3 #142 2024/04/26-19:22:08.759716 7f8906a006c0 Delete type=3 #154
2024/03/19-08:59:49.464411 7fe1974006c0 Delete type=0 #144 2024/04/26-19:22:08.759885 7f8906a006c0 Delete type=0 #156
2024/03/19-09:13:11.463206 7fe18fe006c0 Level-0 table #149: started 2024/04/26-19:25:18.747562 7f88ffe006c0 Level-0 table #162: started
2024/03/19-09:13:11.463229 7fe18fe006c0 Level-0 table #149: 0 bytes OK 2024/04/26-19:25:18.747596 7f88ffe006c0 Level-0 table #162: 0 bytes OK
2024/03/19-09:13:11.469351 7fe18fe006c0 Delete type=0 #147 2024/04/26-19:25:18.785476 7f88ffe006c0 Delete type=0 #160
2024/03/19-09:13:11.476419 7fe18fe006c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end) 2024/04/26-19:25:18.901779 7f88ffe006c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,14 @@
2024/03/19-08:26:23.639789 7fe196a006c0 Recovering log #140 2024/04/26-18:42:26.305585 7f89056006c0 Recovering log #152
2024/03/19-08:26:23.649226 7fe196a006c0 Delete type=3 #138 2024/04/26-18:42:26.316048 7f89056006c0 Delete type=3 #150
2024/03/19-08:26:23.649311 7fe196a006c0 Delete type=0 #140 2024/04/26-18:42:26.316142 7f89056006c0 Delete type=0 #152
2024/03/19-08:59:38.636120 7fe18fe006c0 Level-0 table #145: started 2024/04/26-19:22:04.400858 7f88ffe006c0 Level-0 table #157: started
2024/03/19-08:59:38.636145 7fe18fe006c0 Level-0 table #145: 0 bytes OK 2024/04/26-19:22:04.404082 7f88ffe006c0 Level-0 table #157: 6648 bytes OK
2024/03/19-08:59:38.642769 7fe18fe006c0 Delete type=0 #143 2024/04/26-19:22:04.410232 7f88ffe006c0 Delete type=0 #155
2024/03/19-08:59:38.649658 7fe18fe006c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end) 2024/04/26-19:22:04.438765 7f88ffe006c0 Manual compaction at level-0 from '!items!13IYF6BPUTivFZzB' @ 72057594037927935 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at '!items!oSutlbe9wyBZccmf' @ 45 : 1
2024/04/26-19:22:04.438781 7f88ffe006c0 Compacting 1@0 + 1@1 files
2024/04/26-19:22:04.442180 7f88ffe006c0 Generated table #158@0: 15 keys, 6648 bytes
2024/04/26-19:22:04.442217 7f88ffe006c0 Compacted 1@0 + 1@1 files => 6648 bytes
2024/04/26-19:22:04.448645 7f88ffe006c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2024/04/26-19:22:04.448777 7f88ffe006c0 Delete type=2 #9
2024/04/26-19:22:04.448921 7f88ffe006c0 Delete type=2 #157
2024/04/26-19:22:04.449050 7f88ffe006c0 Manual compaction at level-0 from '!items!oSutlbe9wyBZccmf' @ 45 : 1 .. '!items!oSutlbe9wyBZccmf' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/scenes/000042.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000030 MANIFEST-000043

View File

@ -1,8 +1,8 @@
2024/03/19-08:59:49.439960 7fe1974006c0 Recovering log #28 2024/04/26-19:22:08.735377 7f89074006c0 Recovering log #40
2024/03/19-08:59:49.450519 7fe1974006c0 Delete type=3 #26 2024/04/26-19:22:08.745776 7f89074006c0 Delete type=3 #38
2024/03/19-08:59:49.450564 7fe1974006c0 Delete type=0 #28 2024/04/26-19:22:08.745887 7f89074006c0 Delete type=0 #40
2024/03/19-09:13:11.449133 7fe18fe006c0 Level-0 table #33: started 2024/04/26-19:25:18.595904 7f88ffe006c0 Level-0 table #46: started
2024/03/19-09:13:11.449161 7fe18fe006c0 Level-0 table #33: 0 bytes OK 2024/04/26-19:25:18.595980 7f88ffe006c0 Level-0 table #46: 0 bytes OK
2024/03/19-09:13:11.455581 7fe18fe006c0 Delete type=0 #31 2024/04/26-19:25:18.630930 7f88ffe006c0 Delete type=0 #44
2024/03/19-09:13:11.469432 7fe18fe006c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end) 2024/04/26-19:25:18.747411 7f88ffe006c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
2024/03/19-09:13:11.476429 7fe18fe006c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end) 2024/04/26-19:25:18.747487 7f88ffe006c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,15 @@
2024/03/19-08:26:23.626739 7fe196a006c0 Recovering log #24 2024/04/26-18:42:26.291319 7f8906a006c0 Recovering log #36
2024/03/19-08:26:23.637137 7fe196a006c0 Delete type=3 #22 2024/04/26-18:42:26.301937 7f8906a006c0 Delete type=3 #34
2024/03/19-08:26:23.637185 7fe196a006c0 Delete type=0 #24 2024/04/26-18:42:26.302002 7f8906a006c0 Delete type=0 #36
2024/03/19-08:59:38.629525 7fe18fe006c0 Level-0 table #29: started 2024/04/26-19:22:04.316977 7f88ffe006c0 Level-0 table #41: started
2024/03/19-08:59:38.629567 7fe18fe006c0 Level-0 table #29: 0 bytes OK 2024/04/26-19:22:04.320512 7f88ffe006c0 Level-0 table #41: 1610 bytes OK
2024/03/19-08:59:38.635979 7fe18fe006c0 Delete type=0 #27 2024/04/26-19:22:04.326671 7f88ffe006c0 Delete type=0 #39
2024/03/19-08:59:38.649644 7fe18fe006c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end) 2024/04/26-19:22:04.358352 7f88ffe006c0 Manual compaction at level-0 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)
2024/03/19-08:59:38.649696 7fe18fe006c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end) 2024/04/26-19:22:04.389705 7f88ffe006c0 Manual compaction at level-1 from '!scenes!YYBr138LR7ntGFdo' @ 72057594037927935 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at '!scenes!wJJTdzEVyJpkUXaM' @ 4 : 1
2024/04/26-19:22:04.389720 7f88ffe006c0 Compacting 1@1 + 1@2 files
2024/04/26-19:22:04.392996 7f88ffe006c0 Generated table #42@1: 2 keys, 1610 bytes
2024/04/26-19:22:04.393035 7f88ffe006c0 Compacted 1@1 + 1@2 files => 1610 bytes
2024/04/26-19:22:04.400428 7f88ffe006c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2024/04/26-19:22:04.400531 7f88ffe006c0 Delete type=2 #5
2024/04/26-19:22:04.400646 7f88ffe006c0 Delete type=2 #41
2024/04/26-19:22:04.400749 7f88ffe006c0 Manual compaction at level-1 from '!scenes!wJJTdzEVyJpkUXaM' @ 4 : 1 .. '!scenes!wJJTdzEVyJpkUXaM' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000146 MANIFEST-000159

View File

@ -1,7 +1,7 @@
2024/03/19-08:59:49.399329 7fe1956006c0 Recovering log #144 2024/04/26-19:22:08.694940 7f89056006c0 Recovering log #156
2024/03/19-08:59:49.409751 7fe1956006c0 Delete type=3 #142 2024/04/26-19:22:08.705096 7f89056006c0 Delete type=3 #154
2024/03/19-08:59:49.409855 7fe1956006c0 Delete type=0 #144 2024/04/26-19:22:08.705158 7f89056006c0 Delete type=0 #156
2024/03/19-09:13:11.426894 7fe18fe006c0 Level-0 table #149: started 2024/04/26-19:25:18.631092 7f88ffe006c0 Level-0 table #162: started
2024/03/19-09:13:11.426924 7fe18fe006c0 Level-0 table #149: 0 bytes OK 2024/04/26-19:25:18.631157 7f88ffe006c0 Level-0 table #162: 0 bytes OK
2024/03/19-09:13:11.432936 7fe18fe006c0 Delete type=0 #147 2024/04/26-19:25:18.673806 7f88ffe006c0 Delete type=0 #160
2024/03/19-09:13:11.439402 7fe18fe006c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end) 2024/04/26-19:25:18.747426 7f88ffe006c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,14 @@
2024/03/19-08:26:23.586366 7fe1974006c0 Recovering log #140 2024/04/26-18:42:26.237456 7f89074006c0 Recovering log #152
2024/03/19-08:26:23.596561 7fe1974006c0 Delete type=3 #138 2024/04/26-18:42:26.248857 7f89074006c0 Delete type=3 #150
2024/03/19-08:26:23.596616 7fe1974006c0 Delete type=0 #140 2024/04/26-18:42:26.249007 7f89074006c0 Delete type=0 #152
2024/03/19-08:59:38.610581 7fe18fe006c0 Level-0 table #145: started 2024/04/26-19:22:04.337456 7f88ffe006c0 Level-0 table #157: started
2024/03/19-08:59:38.610610 7fe18fe006c0 Level-0 table #145: 0 bytes OK 2024/04/26-19:22:04.340711 7f88ffe006c0 Level-0 table #157: 14514 bytes OK
2024/03/19-08:59:38.616719 7fe18fe006c0 Delete type=0 #143 2024/04/26-19:22:04.346950 7f88ffe006c0 Delete type=0 #155
2024/03/19-08:59:38.629493 7fe18fe006c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end) 2024/04/26-19:22:04.369097 7f88ffe006c0 Manual compaction at level-0 from '!folders!00Hn2nNarlL7b0DR' @ 72057594037927935 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at '!items!yozTUjNuc2rEGjFK' @ 208 : 1
2024/04/26-19:22:04.369120 7f88ffe006c0 Compacting 1@0 + 1@1 files
2024/04/26-19:22:04.373318 7f88ffe006c0 Generated table #158@0: 113 keys, 16306 bytes
2024/04/26-19:22:04.373343 7f88ffe006c0 Compacted 1@0 + 1@1 files => 16306 bytes
2024/04/26-19:22:04.379990 7f88ffe006c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2024/04/26-19:22:04.380097 7f88ffe006c0 Delete type=2 #9
2024/04/26-19:22:04.380204 7f88ffe006c0 Delete type=2 #157
2024/04/26-19:22:04.400725 7f88ffe006c0 Manual compaction at level-0 from '!items!yozTUjNuc2rEGjFK' @ 208 : 1 .. '!items!yozTUjNuc2rEGjFK' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
packs/traits/000158.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000146 MANIFEST-000159

View File

@ -1,7 +1,7 @@
2024/03/19-08:59:49.425377 7fe1956006c0 Recovering log #144 2024/04/26-19:22:08.721470 7f8906a006c0 Recovering log #156
2024/03/19-08:59:49.436099 7fe1956006c0 Delete type=3 #142 2024/04/26-19:22:08.732531 7f8906a006c0 Delete type=3 #154
2024/03/19-08:59:49.436163 7fe1956006c0 Delete type=0 #144 2024/04/26-19:22:08.732624 7f8906a006c0 Delete type=0 #156
2024/03/19-09:13:11.455720 7fe18fe006c0 Level-0 table #149: started 2024/04/26-19:25:18.716069 7f88ffe006c0 Level-0 table #162: started
2024/03/19-09:13:11.455760 7fe18fe006c0 Level-0 table #149: 0 bytes OK 2024/04/26-19:25:18.716099 7f88ffe006c0 Level-0 table #162: 0 bytes OK
2024/03/19-09:13:11.463106 7fe18fe006c0 Delete type=0 #147 2024/04/26-19:25:18.747273 7f88ffe006c0 Delete type=0 #160
2024/03/19-09:13:11.469442 7fe18fe006c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end) 2024/04/26-19:25:18.747446 7f88ffe006c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,14 @@
2024/03/19-08:26:23.614041 7fe1974006c0 Recovering log #140 2024/04/26-18:42:26.268836 7f89056006c0 Recovering log #152
2024/03/19-08:26:23.624059 7fe1974006c0 Delete type=3 #138 2024/04/26-18:42:26.284952 7f89056006c0 Delete type=3 #150
2024/03/19-08:26:23.624114 7fe1974006c0 Delete type=0 #140 2024/04/26-18:42:26.285029 7f89056006c0 Delete type=0 #152
2024/03/19-08:59:38.622981 7fe18fe006c0 Level-0 table #145: started 2024/04/26-19:22:04.347189 7f88ffe006c0 Level-0 table #157: started
2024/03/19-08:59:38.623003 7fe18fe006c0 Level-0 table #145: 0 bytes OK 2024/04/26-19:22:04.350819 7f88ffe006c0 Level-0 table #157: 3577 bytes OK
2024/03/19-08:59:38.629342 7fe18fe006c0 Delete type=0 #143 2024/04/26-19:22:04.358154 7f88ffe006c0 Delete type=0 #155
2024/03/19-08:59:38.636106 7fe18fe006c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end) 2024/04/26-19:22:04.380268 7f88ffe006c0 Manual compaction at level-0 from '!folders!DiwHbtGAkTYxtshX' @ 72057594037927935 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at '!items!zgNI2haxhBxBDBdl' @ 98 : 1
2024/04/26-19:22:04.380277 7f88ffe006c0 Compacting 1@0 + 1@1 files
2024/04/26-19:22:04.383386 7f88ffe006c0 Generated table #158@0: 25 keys, 4133 bytes
2024/04/26-19:22:04.383409 7f88ffe006c0 Compacted 1@0 + 1@1 files => 4133 bytes
2024/04/26-19:22:04.389454 7f88ffe006c0 compacted to: files[ 0 1 0 0 0 0 0 ]
2024/04/26-19:22:04.389551 7f88ffe006c0 Delete type=2 #9
2024/04/26-19:22:04.389636 7f88ffe006c0 Delete type=2 #157
2024/04/26-19:22:04.400736 7f88ffe006c0 Manual compaction at level-0 from '!items!zgNI2haxhBxBDBdl' @ 98 : 1 .. '!items!zgNI2haxhBxBDBdl' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -102,8 +102,8 @@
"license": "LICENSE.txt", "license": "LICENSE.txt",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-ecryme/raw/branch/master/system.json", "manifest": "https://www.uberwald.me/gitea/public/fvtt-ecryme/raw/branch/master/system.json",
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "11",
"verified": "11" "verified": "12"
}, },
"id": "fvtt-ecryme", "id": "fvtt-ecryme",
"primaryTokenAttribute": "secondary.health", "primaryTokenAttribute": "secondary.health",

View File

@ -101,11 +101,7 @@
<select class="item-field-label-short-header" type="text" <select class="item-field-label-short-header" type="text"
name="system.skills.{{categkey}}.pnjvalue" value="{{category.pnjvalue}}" name="system.skills.{{categkey}}.pnjvalue" value="{{category.pnjvalue}}"
data-dtype="Number"> data-dtype="Number">
{{#select category.pnjvalue}} {{selectOptions @root.config.skillLevel selected=category.pnjvalue}}
{{#each @root.config.skillLevel as |level key| }}
<option value="{{level}}">{{level}}</option>
{{/each}}
{{/select}}
</select> </select>
{{/if}} {{/if}}
</h3> </h3>
@ -125,11 +121,7 @@
<select class="item-field-label-short" type="text" <select class="item-field-label-short" type="text"
name="system.skills.{{categkey}}.skilllist.{{skillkey}}.value" value="{{skill.value}}" name="system.skills.{{categkey}}.skilllist.{{skillkey}}.value" value="{{skill.value}}"
data-dtype="Number"> data-dtype="Number">
{{#select skill.value}} {{selectOptions @root.config.skillLevel selected=skill.value}}
{{#each @root.config.skillLevel as |level key| }}
<option value="{{level}}">{{level}}</option>
{{/each}}
{{/select}}
</select> </select>
</li> </li>
<li class="item flexrow list-item"> <li class="item flexrow list-item">
@ -178,11 +170,7 @@
</a></span> </a></span>
<select class="item-field-label-short" type="text" name="system.cephaly.skilllist.{{skillkey}}.value" <select class="item-field-label-short" type="text" name="system.cephaly.skilllist.{{skillkey}}.value"
value="{{skill.value}}" data-dtype="Number"> value="{{skill.value}}" data-dtype="Number">
{{#select skill.value}} {{selectOptions @root.config.skillLevel selected=skill.value}}
{{#each @root.config.skillLevel as |level key| }}
<option value="{{level}}">{{level}}</option>
{{/each}}
{{/select}}
</select> </select>
</li> </li>
{{/each}} {{/each}}

View File

@ -55,20 +55,13 @@
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.skilltranscendence"}} : </span> <span class="roll-dialog-label">{{localize "ECRY.ui.skilltranscendence"}} : </span>
<select class="" id="roll-select-transcendence" data-type="Number"> <select class="" id="roll-select-transcendence" data-type="Number">
{{#select skillTranscendence}} {{selectOptions config.skillLevel selected=skillTranscendence}}
{{#for 0 skill.value 1}}
<option value="{{this}}">{{this}}</option>
{{/for}}
{{/select}}
</select> </select>
</div> </div>
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.transcendapply"}} : </span> <span class="roll-dialog-label">{{localize "ECRY.ui.transcendapply"}} : </span>
<select class="" id="roll-apply-transcendence" data-type="String"> <select class="" id="roll-apply-transcendence" data-type="String">
{{#select applyTranscendence}} {{selectOptions config.transcendanceOptions selected=applyTranscendence localize=true}}
<option value="execution">{{localize "ECRY.ui.execution"}}</option>
<option value="preservation">{{localize "ECRY.ui.preservation"}}</option>
{{/select}}
</select> </select>
</div> </div>
@ -122,15 +115,7 @@
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">Bonus/Malus : </span> <span class="roll-dialog-label">Bonus/Malus : </span>
<select id="bonusMalusPerso" name="bonusMalusPerso"> <select id="bonusMalusPerso" name="bonusMalusPerso">
{{#select bonusMalusPerso}} {{selectOptions config.bonusMalusPersoOptions selected=bonusMalusPerso valueAttr="value" labelAttr="label"}}
<option value="-3">-3</option>
<option value="-2">-2</option>
<option value="-1">-1</option>
<option value="0">0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
{{/select}}
</select> </select>
</div> </div>

View File

@ -14,11 +14,7 @@
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">{{localize "ECRY.ui.skilltranscendence"}} : </span> <span class="roll-dialog-label">{{localize "ECRY.ui.skilltranscendence"}} : </span>
<select class="" id="roll-select-transcendence" data-type="Number"> <select class="" id="roll-select-transcendence" data-type="Number">
{{#select skillTranscendence}} {{selectOptions config.skillLevel selected=skillTranscendence}}
{{#for 0 skill.value 1}}
<option value="{{this}}">{{this}}</option>
{{/for}}
{{/select}}
</select> </select>
</div> </div>
@ -76,15 +72,7 @@
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">Bonus/Malus : </span> <span class="roll-dialog-label">Bonus/Malus : </span>
<select id="bonusMalusPerso" name="bonusMalusPerso"> <select id="bonusMalusPerso" name="bonusMalusPerso">
{{#select bonusMalusPerso}} {{selectOptions config.bonusMalusPersoOptions selected=bonusMalusPerso valueAttr="value" labelAttr="label"}}
<option value="-3">-3</option>
<option value="-2">-2</option>
<option value="-1">-1</option>
<option value="0">0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
{{/select}}
</select> </select>
</div> </div>

View File

@ -12,13 +12,8 @@
<div class="flexrow"> <div class="flexrow">
<span class="roll-dialog-label">Difficulté : </span> <span class="roll-dialog-label">Difficulté : </span>
<select class="" type="text" id="roll-difficulty" value="{{difficulty}}" data-dtype="Number"> <select class="" type="text" id="roll-difficulty" data-dtype="Number">
{{#select difficulty}} {{selectOptions config.difficulty selected=difficulty localize=true valueAttr="value" labelAttr="difficulty"}}
{{#each config.difficulty as |diffData value| }}
<option value="{{diffData.value}}">{{localize diffData.difficulty}} / {{localize diffData.frequency}}
({{diffData.value}})</option>
{{/each}}
{{/select}}
</select> </select>
</div> </div>

View File

@ -22,22 +22,14 @@
<li class="flexrow"> <li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.impactType"}}</label> <label class="item-name-label-long">{{localize "ECRY.ui.impactType"}}</label>
<select class="item-field-label-medium" type="text" name="system.impacttype" value="{{system.impacttype}}" data-dtype="String"> <select class="item-field-label-medium" type="text" name="system.impacttype" value="{{system.impacttype}}" data-dtype="String">
{{#select system.impacttype}} {{selectOptions config.impactTypes selected=system.impacttype localize=true }}
{{#each config.impactTypes as |type key| }}
<option value="{{key}}">{{localize type}}</option>
{{/each}}
{{/select}}
</select> </select>
</li> </li>
<li class="flexrow"> <li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.impactLevel"}}</label> <label class="item-name-label-long">{{localize "ECRY.ui.impactLevel"}}</label>
<select class="item-field-label-medium" type="text" name="system.impactlevel" value="{{system.impactlevel}}" data-dtype="String"> <select class="item-field-label-medium" type="text" name="system.impactlevel" value="{{system.impactlevel}}" data-dtype="String">
{{#select system.impactlevel}} {{selectOptions config.impactLevels selected=system.impactlevel localize=true }}
{{#each config.impactLevels as |level key| }}
<option value="{{key}}">{{localize level}}</option>
{{/each}}
{{/select}}
</select> </select>
</li> </li>
</ul> </ul>

View File

@ -22,11 +22,7 @@
<li class="flexrow"> <li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.skill"}}</label> <label class="item-name-label-long">{{localize "ECRY.ui.skill"}}</label>
<select class="item-field-label-medium" type="text" name="system.skillkey" value="{{system.skillkey}}" data-dtype="String"> <select class="item-field-label-medium" type="text" name="system.skillkey" value="{{system.skillkey}}" data-dtype="String">
{{#select system.skillkey}} {{selectOptions config.skills selected=system.skillkey localize=true valueAttr="key" textAttr="name"}}
{{#each config.skills as |skill key| }}
<option value="{{key}}">{{localize skill.name}}</option>
{{/each}}
{{/select}}
</select> </select>
</li> </li>

View File

@ -22,23 +22,14 @@
<li class="flexrow"> <li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.traitType"}}</label> <label class="item-name-label-long">{{localize "ECRY.ui.traitType"}}</label>
<select class="item-field-label-medium" type="text" name="system.traitype" value="{{system.traitype}}" data-dtype="String"> <select class="item-field-label-medium" type="text" name="system.traitype" value="{{system.traitype}}" data-dtype="String">
{{#select system.traitype}} {{selectOptions config.traitTypes selected=system.traitype}}
{{#each config.traitTypes as |type key| }}
<option value="{{key}}">{{type}}</option>
{{/each}}
{{/select}}
</select> </select>
</li> </li>
<li class="flexrow"> <li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.niveauTrait"}}</label> <label class="item-name-label-long">{{localize "ECRY.ui.niveauTrait"}}</label>
<select class="item-field-label-medium" type="text" name="system.level" value="{{system.level}}" data-dtype="Number"> <select class="item-field-label-medium" type="text" name="system.level" value="{{system.level}}" data-dtype="Number">
{{#select system.level}} {{selectOptions config.traitLevel selected=system.level valueAttr="value" textAttr="text"}}
{{#each config.traitLevel as |level key| }}
<option value="{{level.value}}">{{level.text}}</option>
{{/each}}
{{/select}}
</select>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -22,11 +22,7 @@
<li class="flexrow"> <li class="flexrow">
<label class="item-name-label-long">{{localize "ECRY.ui.weapontype"}}</label> <label class="item-name-label-long">{{localize "ECRY.ui.weapontype"}}</label>
<select class="item-field-label-medium" type="text" name="system.weapontype" value="{{system.weapontype}}" data-dtype="String"> <select class="item-field-label-medium" type="text" name="system.weapontype" value="{{system.weapontype}}" data-dtype="String">
{{#select system.weapontype}} {{selectOptions config.weaponTypes selected=system.weapontype localize=true}}
{{#each config.weaponTypes as |type key| }}
<option value="{{key}}">{{localize type}}</option>
{{/each}}
{{/select}}
</select> </select>
</li> </li>

View File

@ -8,11 +8,7 @@
<label class="item-field-label-long">{{localize "ECRY.ui.cost"}}</label> <label class="item-field-label-long">{{localize "ECRY.ui.cost"}}</label>
<input type="text" class="item-field-label-short" name="system.cost" value="{{system.cost}}" data-dtype="Number" /> <input type="text" class="item-field-label-short" name="system.cost" value="{{system.cost}}" data-dtype="Number" />
<select class="item-field-label-medium" type="text" name="system.costunit" value="{{system.costunit}}" data-dtype="String"> <select class="item-field-label-medium" type="text" name="system.costunit" value="{{system.costunit}}" data-dtype="String">
{{#select system.costunit}} {{selectOptions config.costUnits selected=system.costunit localize=true}}
{{#each config.costUnits as |unit key| }}
<option value="{{key}}">{{localize unit.name}}</option>
{{/each}}
{{/select}}
</select> </select>
</li> </li>