diff --git a/assets/scenes/FJXugdbkBpEJEdR6-thumb.webp b/assets/scenes/FJXugdbkBpEJEdR6-thumb.webp
new file mode 100644
index 0000000..43de2f1
Binary files /dev/null and b/assets/scenes/FJXugdbkBpEJEdR6-thumb.webp differ
diff --git a/images/ui/tdeum_welcome_page_01.webp b/images/ui/tdeum_welcome_page_01.webp
new file mode 100644
index 0000000..c6805ce
Binary files /dev/null and b/images/ui/tdeum_welcome_page_01.webp differ
diff --git a/modules/actors/tedeum-actor-sheet.js b/modules/actors/tedeum-actor-sheet.js
index 28d1c27..8b3852a 100644
--- a/modules/actors/tedeum-actor-sheet.js
+++ b/modules/actors/tedeum-actor-sheet.js
@@ -52,6 +52,7 @@ export class TeDeumActorPJSheet extends ActorSheet {
pointsArmuresLourdes: this.actor.getNbArmures(),
nbArmuresLourdes: this.actor.getNbArmuresLourdesActuel(),
santeModifier: this.actor.getSanteModifier(),
+ educations: this.actor.getEducations(),
description: await TextEditor.enrichHTML(this.object.system.description, { async: true }),
notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }),
options: this.options,
diff --git a/modules/actors/tedeum-actor.js b/modules/actors/tedeum-actor.js
index 9c25ecc..99e4958 100644
--- a/modules/actors/tedeum-actor.js
+++ b/modules/actors/tedeum-actor.js
@@ -97,6 +97,11 @@ export class TeDeumActor extends Actor {
return nb
}
/* -------------------------------------------- */
+ getEducations() {
+ let educations = this.items.filter(item => item.type == 'education')
+ return educations
+ }
+ /* -------------------------------------------- */
getCompetences() {
let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'competence') || [])
return comp;
diff --git a/modules/app/tedeum-character-creator.js b/modules/app/tedeum-character-creator.js
index ee6b175..b125987 100644
--- a/modules/app/tedeum-character-creator.js
+++ b/modules/app/tedeum-character-creator.js
@@ -1,5 +1,5 @@
import { TeDeumUtility } from "../common/tedeum-utility.js";
-
+import { TeDeumActor } from "../actors/tedeum-actor.js";
export class TeDeumCharacterCreator {
/*--------------------------------------------*/
@@ -20,7 +20,6 @@ export class TeDeumCharacterCreator {
for (let stage in game.system.tedeum.config.etapesEducation) {
this.stages[stage] = { selectedItem: null, items: [] }
}
- console.log(this.stages, game.system.tedeum.etapesEducation)
const educations = await TeDeumUtility.loadCompendium("fvtt-te-deum.education")
for (let edu of educations) {
@@ -32,6 +31,7 @@ export class TeDeumCharacterCreator {
/*--------------------------------------------*/
increaseCompetence(compName) {
+ if (compName === "" || compName == undefined || compName == "undefined") { return }
compName = compName.toLowerCase()
if (!this.competenceBonus[compName]) {
this.competenceBonus[compName] = { value: 1 }
@@ -45,7 +45,7 @@ export class TeDeumCharacterCreator {
let fullResponses = []
for (let key in question.reponses) {
let response = question.reponses[key]
- fullResponses.push({ id: key, label: `${response.reponse} (${response.compName} +1)` })
+ fullResponses.push({ id: key, label: `${response.reponse} (${TeDeumUtility.upperFirst( response.compName)} +1)` })
}
return fullResponses
}
@@ -53,9 +53,15 @@ export class TeDeumCharacterCreator {
/*--------------------------------------------*/
processReponsesRadio(question) {
let fullResponses = {}
+ let selected = true
for (let key in question.reponses) {
let response = question.reponses[key]
- fullResponses[key] = `${response.reponse} (${response.compName} +1)`
+ if (response.toSelect) {
+ fullResponses[key] = { label: `${response.reponse}`, competences: response.compList, selected }
+ } else {
+ fullResponses[key] = { label: `${response.reponse} (${response.compName} +1)`, selected }
+ }
+ selected = false
}
return fullResponses
}
@@ -89,17 +95,16 @@ export class TeDeumCharacterCreator {
}
/*--------------------------------------------*/
- processCompetences(stage) {
- for (let compKey in stage.system.competences) {
- let comp = stage.system.competences[compKey]
- if (comp.valid && comp.compName !== "") {
- this.increaseCompetence(comp.compName)
- }
+ processCompetences(compList) {
+ for (let compName in compList) {
+ this.increaseCompetence(compName)
}
}
/*--------------------------------------------*/
async askQuestionnaire(stage, context) {
+ context.subtitle = "Questionnaire"
+
for (let key in stage.system.questionnaire) {
let question = stage.system.questionnaire[key]
if (question.question === "") { break }
@@ -107,6 +112,8 @@ export class TeDeumCharacterCreator {
context.question = question.question
context.responses = this.processReponses(question)
context.responsesRadio = this.processReponsesRadio(question)
+ context.competences = {}
+ context.responseKey = "reponse1" // By default
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-questions.hbs", context)
const choiceResult = await foundry.applications.api.DialogV2.wait({
@@ -129,24 +136,138 @@ export class TeDeumCharacterCreator {
},
rejectClose: false, // Click on Close button will not launch an error
render: (event, dialog) => {
+ $(".questionnaire-radio").click(event => {
+ let responseKey = $(event.target).data("response-key")
+ context.responseKey = responseKey
+ })
+ $(".questionnaire-select-competence").change(event => {
+ // Get the responseKey data
+ let responseKey = $(event.target).data("response-key")
+ let compName = event.target.value
+ console.log("Questionnaire Change", responseKey, compName)
+ context.competences[responseKey] = compName.toLowerCase()
+ })
}
})
- if (choiceResult == null) { return }
- let selectedResponse = question.reponses[choiceResult.responseKey]
- console.log(choiceResult, selectedResponse, question)
- this.increaseCompetence(selectedResponse.compName)
+ if (choiceResult == null) {
+ this.currentStage = "cancelled"
+ return
+ }
+
+ let selectedResponse = question.reponses[context.responseKey]
+ let compName = context.competences[context.responseKey] || selectedResponse.compName
+ this.increaseCompetence(compName)
}
}
+ /*------------- -------------------------------*/
+ async askCompetences(stage, context) {
+ context.subtitle = "Choix des Compétences"
+
+ context.fixedCompetences = {}
+ context.selectCompetences = {}
+ for (let compKey in stage.system.competences) {
+ let comp = stage.system.competences[compKey]
+ if (comp.valid && comp.compName !== "") {
+ if (comp.toSelect) {
+ context.hasSelectCompetences = true
+ context.selectCompetences[comp.compName] = TeDeumUtility.upperFirst(comp.compName)
+ } else {
+ context.fixedCompetences[comp.compName] = TeDeumUtility.upperFirst(comp.compName)
+ }
+ }
+ }
+
+ const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-competences.hbs", context)
+ const choiceResult = await foundry.applications.api.DialogV2.wait({
+ window: { title: context.title },
+ classes: ["fvtt-te-deum"],
+ content,
+ buttons: [
+ {
+ label: context.label,
+ callback: (event, button, dialog) => {
+ const output = Array.from(button.form.elements).reduce((obj, input) => {
+ if (input.name) obj[input.name] = input.value
+ return obj
+ }, {})
+ return output
+ },
+ },
+ ],
+ actions: {
+ },
+ rejectClose: false, // Click on Close button will not launch an error
+ render: (event, dialog) => {
+ }
+ })
+ if (choiceResult == null) {
+ this.currentStage = "cancelled"
+ return
+ }
+ context.fixedCompetences[choiceResult.selectedCompetence] = choiceResult.selectedCompetence
+ this.processCompetences(context.fixedCompetences)
+
+ // Handle specific case when multiple skills can be selected (ie compagnon case)
+ if ( stage.system.hasCompetencesOpt ) {
+ context.fixedCompetences = []
+ context.hasSelectCompetences = true
+ for (let i = 0; i < stage.system.competencesOptNumber; i++) {
+ context.competences = {}
+ context.selectCompetences = {}
+ for (let compKey in stage.system.competencesOpt) {
+ let comp = stage.system.competencesOpt[compKey]
+ if (comp.compName !== "") {
+ context.selectCompetences[comp.compName] = TeDeumUtility.upperFirst(comp.compName)
+ }
+ }
+
+ const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-competences.hbs", context)
+ const choiceResult = await foundry.applications.api.DialogV2.wait({
+ window: { title: context.title },
+ classes: ["fvtt-te-deum"],
+ content,
+ buttons: [
+ {
+ label: context.label,
+ callback: (event, button, dialog) => {
+ const output = Array.from(button.form.elements).reduce((obj, input) => {
+ if (input.name) obj[input.name] = input.value
+ return obj
+ }, {})
+ return output
+ },
+ },
+ ],
+ actions: {
+ },
+ rejectClose: false, // Click on Close button will not launch an error
+ render: (event, dialog) => {
+ }
+ })
+ if (choiceResult == null) {
+ this.currentStage = "cancelled"
+ return
+ }
+ context.fixedCompetences[choiceResult.selectedCompetence] = choiceResult.selectedCompetence
+ this.processCompetences(context.fixedCompetences)
+ }
+ }
+
+ }
+
/*------------- -------------------------------*/
async askCarac(stage, context) {
+ context.subtitle = "Choix des Caractéristiques"
+
+ let selected = []
for (let i = 0; i < stage.system.nbChoixCarac; i++) {
context.caracList = []
for (let caracKey in stage.system.caracteristiques) {
let carac = stage.system.caracteristiques[caracKey]
+ if (selected.includes(carac.caracId)) { continue }
context.caracList.push(game.system.tedeum.config.caracteristiques[carac.caracId])
}
- context.competences = stage.system.competences
const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-carac.hbs", context)
const choiceResult = await foundry.applications.api.DialogV2.wait({
@@ -171,21 +292,26 @@ export class TeDeumCharacterCreator {
render: (event, dialog) => {
}
})
- if (choiceResult == null) { return }
+ if (choiceResult == null) {
+ this.currentStage = "cancelled"
+ return
+ }
this.caracBonus[choiceResult.carac].value += 1
+ selected.push(choiceResult.carac)
}
}
/*--------------------------------------------*/
async renderOrigineSociale(stage) {
let context = {
- title: "Création de personnage - Origine Sociale",
+ title: "Création de personnage",
+ subtitle: "Origine Sociale",
sexeChoice: { "homme": "Homme", "femme": "Femme" },
religionChoice: { "catholique": "Catholique", "protestante": "Protestante" },
origineChoice: game.system.tedeum.config.origineSociale
}
- const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-origine.hbs", context)
+ const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-origine.hbs", context)
const label = "Valider le choix de l'Origine Sociale"
const choiceResult = await foundry.applications.api.DialogV2.wait({
window: { title: context.title },
@@ -209,13 +335,17 @@ export class TeDeumCharacterCreator {
render: (event, dialog) => { }
})
- if (choiceResult == null) { return }
-
- console.log(choiceResult)
+ if (choiceResult == null) {
+ this.currentStage = "cancelled"
+ return
+ }
this.sexe = choiceResult.sexe
this.religion = choiceResult.religion
this.origineSociale = foundry.utils.duplicate(game.system.tedeum.config.origineSociale[choiceResult.origineSociale])
+ for (let key in this.origineSociale.caracteristiques) {
+ this.caracBonus[key].value += this.origineSociale.caracteristiques[key]
+ }
this.currentStage = "pouponniere"
}
@@ -228,22 +358,28 @@ export class TeDeumCharacterCreator {
let context = {
title: "Création de personnage - La Pouponnière",
+ subtitle: "Choix de la Pouponnière",
label: "Valider le choix de la Pouponnière",
- choices: pouponniereItems
+ choices: pouponniereItems,
+ caracBonus: this.caracBonus,
+ competenceBonus: this.competenceBonus
}
let choiceResult = await this.askStageName(context)
- if (choiceResult == null) { return }
+ if (choiceResult == null) {
+ this.currentStage = "cancelled"
+ return
+ }
this.pouponniere = foundry.utils.duplicate(stage.items.find(item => item.id === choiceResult.selectedItem))
+ context.title = `La Pouponnière - ${this.pouponniere.name}`
TeDeumUtility.prepareEducationContent(this.pouponniere);
- console.log(choiceResult, this.pouponniere)
context.label = "Valider l'augmentation de caracteristique"
await this.askCarac(this.pouponniere, context)
- this.processCompetences(this.pouponniere)
+ context.label = "Valider l'augmentation de compétences"
+ await this.askCompetences(this.pouponniere, context)
- context.title = "Création de personnage - La Pouponnière - Questions"
context.label = "Valider cette réponse"
await this.askQuestionnaire(this.pouponniere, context)
@@ -256,24 +392,28 @@ export class TeDeumCharacterCreator {
let grimaudsItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible)
let context = {
- title: "Création de personnage - Les Petits Grimauds",
+ title: "Les Petits Grimauds",
label: "Valider le choix des Petits Grimauds",
- choices: grimaudsItems
+ choices: grimaudsItems,
+ caracBonus: this.caracBonus,
+ competenceBonus: this.competenceBonus
}
let choiceResult = await this.askStageName(context)
- if (choiceResult == null) { return }
+ if (choiceResult == null) {
+ this.currentStage = "cancelled"
+ return
+ }
this.grimauds = foundry.utils.duplicate(stage.items.find(item => item.id === choiceResult.selectedItem))
+ context.title = `LesPetits Grimauds - ${this.grimauds.name}"`
TeDeumUtility.prepareEducationContent(this.grimauds);
- console.log(choiceResult, this.grimauds)
context.label = "Valider l'augmentation de caracteristique"
await this.askCarac(this.grimauds, context)
+ context.label = "Valider l'augmentation de compétences"
+ await this.askCompetences(this.grimauds, context)
- this.processCompetences(this.grimauds)
-
- context.title = "Création de personnage - Les Petits Grimauds - Questions"
context.label = "Valider cette réponse"
await this.askQuestionnaire(this.grimauds, context)
@@ -288,22 +428,27 @@ export class TeDeumCharacterCreator {
let context = {
title: "Création de personnage - Les Roses de la Vie",
label: "Valider le choix des Roses de la Vie",
- choices: rosesItems
+ choices: rosesItems,
+ caracBonus: this.caracBonus,
+ competenceBonus: this.competenceBonus
+
}
let choiceResult = await this.askStageName(context)
- if (choiceResult == null) { return }
+ if (choiceResult == null) {
+ this.currentStage = "cancelled"
+ return
+ }
this.roses = foundry.utils.duplicate(stage.items.find(item => item.id === choiceResult.selectedItem))
+ context.title = `Les Roses de la Vie - ${this.roses.name}`
TeDeumUtility.prepareEducationContent(this.roses);
- console.log(choiceResult, this.roses)
context.label = "Valider l'augmentation de caracteristique"
await this.askCarac(this.roses, context)
+ context.label = "Valider l'augmentation de compétences"
+ await this.askCompetences(this.roses, context)
- this.processCompetences(this.roses)
-
- context.title = "Création de personnage - Les Roses de la Vie - Questions"
context.label = "Valider cette réponse"
await this.askQuestionnaire(this.roses, context)
@@ -312,26 +457,41 @@ export class TeDeumCharacterCreator {
/*--------------------------------------------*/
async renderAgeViril(stage) {
- // Filter available pouponniere from origineSociale
- let ageVirilItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible)
+ let virilDebouche = this.roses.system.debouches
+ let ageVirilItems = []
+ for (let key in virilDebouche) {
+ let debouche = virilDebouche[key]
+ if (debouche.debouche === "") { continue }
+ let deboucheItem = stage.items.find(item => item.name.toLowerCase().includes(debouche.debouche.toLowerCase()))
+ if (deboucheItem) {
+ ageVirilItems.push(deboucheItem)
+ } else {
+ console.log(`Debouche ${debouche.debouche} not found !`)
+ }
+ }
let context = {
title: "Création de personnage - L'Age Viril",
label: "Valider le choix de l'Age Viril",
- choices: ageVirilItems
+ choices: ageVirilItems,
+ caracBonus: this.caracBonus,
+ competenceBonus: this.competenceBonus
}
let choiceResult = await this.askStageName(context)
- if (choiceResult == null) { return }
+ if (choiceResult == null) {
+ this.currentStage = "cancelled"
+ return
+ }
this.ageViril = foundry.utils.duplicate(stage.items.find(item => item.id === choiceResult.selectedItem))
+ context.title = `L'Age Viril - ${this.ageViril.name}`
TeDeumUtility.prepareEducationContent(this.ageViril);
- console.log(choiceResult, this.ageViril)
context.label = "Valider l'augmentation de caracteristique"
await this.askCarac(this.ageViril, context)
-
- this.processCompetences(this.ageViril)
+ context.label = "Valider l'augmentation de compétences"
+ await this.askCompetences(this.ageViril, context)
this.currentStage = "finished"
}
@@ -356,11 +516,78 @@ export class TeDeumCharacterCreator {
case "ageviril":
await this.renderAgeViril(stage)
break
+ case "cancelled":
+ return
+ break
}
}
- console.log("Carac Bonus", this.caracBonus)
+ console.log("Carac Bonus", this.caracBonus)
console.log("Competence Bonus", this.competenceBonus)
+ let actor = await TeDeumActor.create({name: "Nouveau personnage", type: "pj"})
+ let updates = {}
+ for (let key in this.caracBonus) {
+ updates[`system.caracteristiques.${key}.value`] = Number(this.caracBonus[key].value)+1
+ }
+ updates['system.genre'] = this.sexe
+ updates['system.religion'] = this.religion
+ updates['system.statutocial'] = this.origineSociale.label
+ updates['system.equipmentfree'] = this.ageViril.system.trousseau
+ actor.update( updates);
+
+ // Process competences : increase know skills
+ let updateComp = []
+ let toAdd = []
+ for (let compName in this.competenceBonus) {
+ let comp = actor.items.find( i => i.type == "competence" && i.name.toLowerCase() === compName.toLowerCase())
+ if (comp) {
+ updateComp.push({ _id: comp._id, "system.score": this.competenceBonus[compName].value })
+ } else {
+ toAdd.push( compName)
+ }
+ }
+ actor.updateEmbeddedDocuments("Item", updateComp)
+
+ // Process adding skills
+ let compendiumSkill = TeDeumUtility.getCompetences()
+ let compToAdd = [ this.pouponniere, this.grimauds, this.roses, this.ageViril ]
+ for (let compName of toAdd) {
+ let comp = compendiumSkill.find( i => i.name.toLowerCase() === compName.toLowerCase())
+ comp.system.score = this.competenceBonus[compName].value
+ compToAdd.push(comp)
+ }
+ await actor.createEmbeddedDocuments('Item', compToAdd)
+
+ let newArgent = this.origineSociale.cagnotte * this.ageViril.system.cagnotteMultiplier
+ newArgent /= this.ageViril.system.cagnotteDivider
+ await actor.update({ [`system.fortune.${this.origineSociale.cagnotteUnit}`]: newArgent})
+
+ actor.render(true)
+
+ const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-finished.hbs", context)
+ const label = "Terminer"
+ const choiceResult = await foundry.applications.api.DialogV2.wait({
+ window: { title: context.title },
+ classes: ["fvtt-te-deum"],
+ content,
+ buttons: [
+ {
+ label: label,
+ callback: (event, button, dialog) => {
+ const output = Array.from(button.form.elements).reduce((obj, input) => {
+ if (input.name) obj[input.name] = input.value
+ return obj
+ }, {})
+ return output
+ },
+ },
+ ],
+ actions: {
+ },
+ rejectClose: false, // Click on Close button will not launch an error
+ render: (event, dialog) => { }
+ })
+
}
}
diff --git a/modules/common/tedeum-config.js b/modules/common/tedeum-config.js
index 188e8cf..796f05f 100644
--- a/modules/common/tedeum-config.js
+++ b/modules/common/tedeum-config.js
@@ -146,22 +146,22 @@ export const TEDEUM_CONFIG = {
livre: { label: "Livres", id: "livre", value: 100 }
},
etapesEducation: {
- pouponniere: { label: "La Pouponnière", value: "pouponniere", agemin: 0, agemax: 6, nbCompetences: 2, nbCaracteristiques: 3, hasQuestionnaire: true, hasMultiplier: false },
- petitsgrimauds: { label: "La classe des Petits Grimauds", value: "petitsgrimauds", agemin: 7, agemax: 12,nbCompetences: 10, nbCaracteristiques: 3, hasQuestionnaire: true, hasMultiplier: false },
- rosevie: { label: "Les Roses de la Vie", value: "rosevie", agemin: 13, agemax: 16, nbCompetences: 2, nbCaracteristiques: 3, hasQuestionnaire: true, hasMultiplier: false },
- ageviril: { label: "L'Age Viril", value: "ageviril", agemin: 17, agemax: 17, nbCompetences: 9, nbCaracteristiques: 2, hasQuestionnaire: false, hasMultiplier: true },
+ pouponniere: { label: "La Pouponnière", value: "pouponniere", agemin: 0, agemax: 6, nbCompetences: 2, nbCaracteristiques: 3, hasQuestionnaire: true, hasDebouches: false, hasMultiplier: false, canCompetencesOpt: false },
+ petitsgrimauds: { label: "La classe des Petits Grimauds", value: "petitsgrimauds", agemin: 7, agemax: 12,nbCompetences: 10, nbCaracteristiques: 3, hasDebouches: false, hasQuestionnaire: true, hasMultiplier: false, canCompetencesOpt: false },
+ rosevie: { label: "Les Roses de la Vie", value: "rosevie", agemin: 13, agemax: 16, nbCompetences: 2, nbCaracteristiques: 3, hasQuestionnaire: true, hasDebouches: true, hasMultiplier: false, canCompetencesOpt: false },
+ ageviril: { label: "L'Age Viril", value: "ageviril", agemin: 17, agemax: 17, nbCompetences: 9, nbCaracteristiques: 2, hasQuestionnaire: false, hasDebouches: false, hasMultiplier: true, canCompetencesOpt: true },
},
origineSociale: {
- noblesseepee: { label: "Noblesse d'épée", id: "noblesseepee", caracteristiques: {entregent: 1, puissance: 1}, cagnotte: 10, cagnotteUnit: "livre", value: 1 },
- noblessecloche: { label: "Noblesse de cloche", id: "noblessecloche", caracteristiques: {entregent: 1, savoir: 1}, cagnotte: 50, cagnotteUnit: "livre", value: 2 },
- hautenoblesse: { label: "Haute noblesse (Illégitime)", id: "hautenoblesse", caracteristiques: {complexion: 1, puissance: 1}, cagnotte: 20, cagnotteUnit: "livre", value: 3 },
- hautebourgeoisie: { label: "Haute bourgeoisie", id: "hautebourgeoisie", caracteristiques: {savoir: 1, sensibilite: 1}, cagnotte: 60, cagnotteUnit: "livre",value: 4 },
- petitebourgeoisie: { label: "Petite bourgeoisie (Marchands)", caracteristiques: {entregent: 1, sensibilite: 1}, cagnotte: 20, cagnotteUnit: "livre",id: "petitebourgeoisie", value: 5 },
- artisan: { label: "Artisans", id: "artisan", caracteristiques: {adresse: 1, sensibilite: 1}, cagnotte: 10, cagnotteUnit: "livre",value: 6 },
- laboureur: { label: "Laboureurs", id: "laboureur", caracteristiques: {entregent: 1, complexion: 1}, cagnotte: 10, cagnotteUnit: "livre",value: 7 },
- domesticite: { label: "Domesticité", id: "domesticite", caracteristiques: {entregent: 1, adresse: 1}, cagnotte: 2, cagnotteUnit: "sol",value: 8 },
- paysannerie: { label: "Paysannerie", id: "paysannerie", caracteristiques: {puissance: 1, complexion: 1}, cagnotte: 1, cagnotteUnit: "sol", value: 9 },
- gueux: { label: "Gueux", id: "gueux", caracteristiques: {adresse: 1, complexion: 1}, cagnotte: 4, cagnotteUnit: "denier", value: 10 },
+ noblesseepee: { label: "Noblesse d'épée", id: "noblesseepee", caracteristiques: {entregent: 1, puissance: 1}, cagnotte: 10, cagnotteUnit: "livres", value: 1 },
+ noblessecloche: { label: "Noblesse de cloche", id: "noblessecloche", caracteristiques: {entregent: 1, savoir: 1}, cagnotte: 50, cagnotteUnit: "livres", value: 2 },
+ hautenoblesse: { label: "Haute noblesse (Illégitime)", id: "hautenoblesse", caracteristiques: {complexion: 1, puissance: 1}, cagnotte: 20, cagnotteUnit: "livres", value: 3 },
+ hautebourgeoisie: { label: "Haute bourgeoisie", id: "hautebourgeoisie", caracteristiques: {savoir: 1, sensibilite: 1}, cagnotte: 60, cagnotteUnit: "livres",value: 4 },
+ petitebourgeoisie: { label: "Petite bourgeoisie (Marchands)", caracteristiques: {entregent: 1, sensibilite: 1}, cagnotte: 20, cagnotteUnit: "livres",id: "petitebourgeoisie", value: 5 },
+ artisan: { label: "Artisans", id: "artisan", caracteristiques: {adresse: 1, sensibilite: 1}, cagnotte: 10, cagnotteUnit: "livres",value: 6 },
+ laboureur: { label: "Laboureurs", id: "laboureur", caracteristiques: {entregent: 1, complexion: 1}, cagnotte: 10, cagnotteUnit: "livres",value: 7 },
+ domesticite: { label: "Domesticité", id: "domesticite", caracteristiques: {entregent: 1, adresse: 1}, cagnotte: 2, cagnotteUnit: "sous",value: 8 },
+ paysannerie: { label: "Paysannerie", id: "paysannerie", caracteristiques: {puissance: 1, complexion: 1}, cagnotte: 1, cagnotteUnit: "sous", value: 9 },
+ gueux: { label: "Gueux", id: "gueux", caracteristiques: {adresse: 1, complexion: 1}, cagnotte: 4, cagnotteUnit: "deniers", value: 10 },
},
bonusMalus: [
{ value: "-2", label: "-2 niveaux" },
diff --git a/modules/common/tedeum-utility.js b/modules/common/tedeum-utility.js
index 47b2904..52094f8 100644
--- a/modules/common/tedeum-utility.js
+++ b/modules/common/tedeum-utility.js
@@ -6,6 +6,19 @@ export class TeDeumUtility {
/* -------------------------------------------- */
static async init() {
Hooks.on('renderChatLog', (log, html, data) => TeDeumUtility.chatListeners(html));
+
+ Hooks.on("renderActorDirectory", (app, html, data) => {
+ if (game.user.can('ACTOR_CREATE')) {
+ const button = document.createElement('button');
+ button.style.width = '90%';
+ button.innerHTML = 'Créer un Personnage'
+ button.addEventListener('click', () => {
+ let cr = new game.system.tedeum.TeDeumCharacterCreator();
+ cr.init()
+ })
+ html.find('.header-actions').after(button)
+ }
+ })
//Hooks.on("getChatLogEntryContext", (html, options) => TeDeumUtility.chatMenuManager(html, options));
}
@@ -64,6 +77,9 @@ export class TeDeumUtility {
Handlebars.registerHelper('getCaracDescription', function (key, value) {
return game.system.tedeum.config.descriptionValeur[Number(value)][key]
})
+ Handlebars.registerHelper('getEducationEtape', function (key) {
+ return game.system.tedeum.config.etapesEducation[key].label
+ })
Handlebars.registerHelper('isGM', function () {
return game.user.isGM
@@ -76,6 +92,31 @@ export class TeDeumUtility {
for (let i of this.competences) {
this.competencesList[i.name.toLowerCase()] = { name: i.name, id: i._id }
}
+ this.competencesList = Object.entries(this.competencesList).sort().reduce((o, [k, v]) => (o[k] = v, o), {})
+ }
+
+ /* -------------------------------------------- */
+ static async importDefaultScene() {
+ let exists = game.scenes.find(j => j.name == "Te Deum");
+ if (!exists) {
+ const scenes = await TeDeumUtility.loadCompendium("fvtt-te-deum.scenes")
+ let newDocuments = scenes.filter(i => i.name == "Te Deum");
+ if (newDocuments) {
+ await game.scenes.documentClass.create(newDocuments);
+ game.scenes.find(i => i.name == "Te Deum").activate();
+ }
+ }
+ }
+
+ /* -------------------------------------------- */
+ static welcomeMessage() {
+ if (game.user.isGM) {
+ ChatMessage.create({
+ user: game.user.id,
+ whisper: [game.user.id],
+ content: `
+ Bienvenu dans Te Deum Pour Un Massacre ! ` });
+ }
}
/*-------------------------------------------- */
@@ -89,22 +130,25 @@ export class TeDeumUtility {
/*-------------------------------------------- */
static prepareEducationContent(formData) {
- let nbCompetences = game.system.tedeum.config.etapesEducation[formData.system.etape].nbCompetences
+ let etape = game.system.tedeum.config.etapesEducation[formData.system.etape]
+ let nbCompetences = etape.nbCompetences
for (let key in formData.system.competences) {
formData.system.competences[key].valid = false
}
for (let i = 1; i <= nbCompetences; i++) {
formData.system.competences[`comp${i}`].valid = true
}
- let nbCaracteristiques = game.system.tedeum.config.etapesEducation[formData.system.etape].nbCaracteristiques
+ let nbCaracteristiques = etape.nbCaracteristiques
for (let key in formData.system.caracteristiques) {
formData.system.caracteristiques[key].valid = false
}
for (let i = 1; i <= nbCaracteristiques; i++) {
formData.system.caracteristiques[`carac${i}`].valid = true
}
- formData.hasQuestionnaire = game.system.tedeum.config.etapesEducation[formData.system.etape].hasQuestionnaire;
- formData.hasMultiplier = game.system.tedeum.config.etapesEducation[formData.system.etape].hasMultiplier;
+ formData.hasQuestionnaire = etape.hasQuestionnaire;
+ formData.hasMultiplier = etape.hasMultiplier;
+ formData.hasDebouches = etape.hasDebouches;
+ formData.canCompetencesOpt = etape.canCompetencesOpt;
}
/*-------------------------------------------- */
@@ -183,7 +227,8 @@ export class TeDeumUtility {
const templatePaths = [
'systems/fvtt-te-deum/templates/actors/editor-notes-gm.hbs',
'systems/fvtt-te-deum/templates/items/partial-item-nav.hbs',
- 'systems/fvtt-te-deum/templates/items/partial-item-description.hbs'
+ 'systems/fvtt-te-deum/templates/items/partial-item-description.hbs',
+ 'systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs'
]
return loadTemplates(templatePaths);
}
@@ -416,13 +461,13 @@ export class TeDeumUtility {
await this.getLocalisation(rollData)
let actor = game.actors.get(rollData.actorId)
let bDegats = actor.getBonusDegats()
- let degatsRoll = await new Roll(rollData.arme.system.degats+"+"+bDegats.value ).roll()
+ let degatsRoll = await new Roll(rollData.arme.system.degats + "+" + bDegats.value).roll()
await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode"))
rollData.degatsRoll = foundry.utils.duplicate(degatsRoll)
rollData.degats = degatsRoll.total
}
}
-
+
/* -------------------------------------------- */
static async processAttaqueDistance(rollData) {
if (rollData.arme?.system.typeArme != "tir") {
diff --git a/modules/data/tedeum-schema-education.js b/modules/data/tedeum-schema-education.js
index f8918c2..7acf7be 100644
--- a/modules/data/tedeum-schema-education.js
+++ b/modules/data/tedeum-schema-education.js
@@ -22,6 +22,7 @@ export class TeDeumEducationSchema extends foundry.abstract.TypeDataModel {
});
return caracs;
}, {}));
+
schema.competences = new fields.SchemaField(Array.fromRange(10, 1).reduce((comps, i) => {
comps[`comp${i}`] = new fields.SchemaField({
compName: new fields.StringField({ required: true, blank: true, initial: "" }),
@@ -29,6 +30,15 @@ export class TeDeumEducationSchema extends foundry.abstract.TypeDataModel {
});
return comps;
}, {}));
+
+ schema.hasCompetencesOpt = new fields.BooleanField({initial: false})
+ schema.competencesOptNumber = new fields.NumberField({ ...requiredInteger, initial: 1, min:0 })
+ schema.competencesOpt = new fields.SchemaField(Array.fromRange(14, 1).reduce((comps, i) => {
+ comps[`comp${i}`] = new fields.SchemaField({
+ compName: new fields.StringField({ required: true, blank: true, initial: "" })
+ });
+ return comps;
+ }, {}));
schema.questionnaire = new fields.SchemaField(Array.fromRange(8, 1).reduce((questions, i) => {
questions[`question${i}`] = new fields.SchemaField({
@@ -52,10 +62,18 @@ export class TeDeumEducationSchema extends foundry.abstract.TypeDataModel {
return questions;
}, {}));
+ schema.debouches = new fields.SchemaField(Array.fromRange(24, 1).reduce((debouches, i) => {
+ debouches[`debouche${i}`] = new fields.SchemaField({
+ debouche: new fields.StringField({ required: true, blank: true, initial: "" })
+ })
+ return debouches;
+ }, {}));
+
schema.cagnotteMultiplier = new fields.NumberField({ ...requiredDouble, initial: 1.0, min: 0 });
schema.cagnotteDivider = new fields.NumberField({ ...requiredDouble, initial: 1.0, min: 0 });
schema.description = new fields.HTMLField({ required: true, blank: true });
+ schema.trousseau = new fields.StringField({ required: true, blank: true, initial: "" });
return schema;
}
diff --git a/modules/data/tedeum-schema-pj.js b/modules/data/tedeum-schema-pj.js
index fbb212e..10e2fd0 100644
--- a/modules/data/tedeum-schema-pj.js
+++ b/modules/data/tedeum-schema-pj.js
@@ -33,7 +33,7 @@ export class TeDeumPJSchema extends foundry.abstract.TypeDataModel {
);
schema.fortune = new fields.SchemaField({
- "ecu": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
+ "ecus": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }),
"livres": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }) ,
"sous": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }) ,
"deniers": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 })
@@ -42,7 +42,8 @@ export class TeDeumPJSchema extends foundry.abstract.TypeDataModel {
schema.description = new fields.HTMLField({required: true, blank: true});
schema.connaissances = new fields.HTMLField({required: true, blank: true});
schema.vetements = new fields.HTMLField({required: true, blank: true});
- //schema.descriptiongraces = new fields.HTMLField({required: true, blank: true});
+ schema.equipmentfree = new fields.HTMLField({required: true, blank: true});
+
schema.genre = new fields.StringField({required: true, choices: ["Homme", "Femme"], initial: "Femme"});
schema.age = new fields.StringField({ required: false, blank: true, initial: undefined });
schema.statutocial = new fields.StringField({ required: false, blank: true, initial: undefined });
diff --git a/modules/tedeum-main.js b/modules/tedeum-main.js
index 456e14e..a90bdef 100644
--- a/modules/tedeum-main.js
+++ b/modules/tedeum-main.js
@@ -92,16 +92,6 @@ Hooks.once("init", async function () {
TeDeumUtility.init()
});
-/* -------------------------------------------- */
-function welcomeMessage() {
- if (game.user.isGM) {
- ChatMessage.create({
- user: game.user.id,
- whisper: [game.user.id],
- content: `
- Bienvenu dans Te Deum Pour Un Massacre ! ` });
- }
-}
/* -------------------------------------------- */
/* Foundry VTT Initialization */
@@ -125,7 +115,8 @@ Hooks.once("ready", function () {
)
TeDeumUtility.ready();
- welcomeMessage();
+ TeDeumUtility.importDefaultScene()
+ TeDeumUtility.welcomeMessage();
})
diff --git a/packs/armes/000032.log b/packs/armes/000070.log
similarity index 100%
rename from packs/armes/000032.log
rename to packs/armes/000070.log
diff --git a/packs/armes/CURRENT b/packs/armes/CURRENT
index caa721a..284d53f 100644
--- a/packs/armes/CURRENT
+++ b/packs/armes/CURRENT
@@ -1 +1 @@
-MANIFEST-000030
+MANIFEST-000068
diff --git a/packs/armes/LOG b/packs/armes/LOG
index c8cbd84..5fb4c7c 100644
--- a/packs/armes/LOG
+++ b/packs/armes/LOG
@@ -1,7 +1,7 @@
-2025/01/31-11:46:44.844175 7ff40d5f96c0 Recovering log #28
-2025/01/31-11:46:44.854119 7ff40d5f96c0 Delete type=3 #26
-2025/01/31-11:46:44.854226 7ff40d5f96c0 Delete type=0 #28
-2025/01/31-11:54:21.927622 7ff4077fe6c0 Level-0 table #33: started
-2025/01/31-11:54:21.927655 7ff4077fe6c0 Level-0 table #33: 0 bytes OK
-2025/01/31-11:54:21.934817 7ff4077fe6c0 Delete type=0 #31
-2025/01/31-11:54:21.941818 7ff4077fe6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
+2025/02/03-22:58:38.814947 7f5b477fe6c0 Recovering log #66
+2025/02/03-22:58:38.869766 7f5b477fe6c0 Delete type=3 #64
+2025/02/03-22:58:38.869877 7f5b477fe6c0 Delete type=0 #66
+2025/02/03-23:00:39.704731 7f5b463ff6c0 Level-0 table #71: started
+2025/02/03-23:00:39.704771 7f5b463ff6c0 Level-0 table #71: 0 bytes OK
+2025/02/03-23:00:39.711745 7f5b463ff6c0 Delete type=0 #69
+2025/02/03-23:00:39.725416 7f5b463ff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
diff --git a/packs/armes/LOG.old b/packs/armes/LOG.old
index ee5f9e0..3c4c266 100644
--- a/packs/armes/LOG.old
+++ b/packs/armes/LOG.old
@@ -1,7 +1,7 @@
-2025/01/31-10:35:52.195113 7ff40ddfa6c0 Recovering log #24
-2025/01/31-10:35:52.204734 7ff40ddfa6c0 Delete type=3 #22
-2025/01/31-10:35:52.204791 7ff40ddfa6c0 Delete type=0 #24
-2025/01/31-11:04:13.723993 7ff4077fe6c0 Level-0 table #29: started
-2025/01/31-11:04:13.724023 7ff4077fe6c0 Level-0 table #29: 0 bytes OK
-2025/01/31-11:04:13.731157 7ff4077fe6c0 Delete type=0 #27
-2025/01/31-11:04:13.737704 7ff4077fe6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
+2025/02/03-22:55:39.422885 7f5b477fe6c0 Recovering log #62
+2025/02/03-22:55:39.432766 7f5b477fe6c0 Delete type=3 #60
+2025/02/03-22:55:39.432891 7f5b477fe6c0 Delete type=0 #62
+2025/02/03-22:56:09.836871 7f5b463ff6c0 Level-0 table #67: started
+2025/02/03-22:56:09.836910 7f5b463ff6c0 Level-0 table #67: 0 bytes OK
+2025/02/03-22:56:09.845000 7f5b463ff6c0 Delete type=0 #65
+2025/02/03-22:56:09.845233 7f5b463ff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
diff --git a/packs/armes/MANIFEST-000030 b/packs/armes/MANIFEST-000068
similarity index 74%
rename from packs/armes/MANIFEST-000030
rename to packs/armes/MANIFEST-000068
index e2426b5..f787d16 100644
Binary files a/packs/armes/MANIFEST-000030 and b/packs/armes/MANIFEST-000068 differ
diff --git a/packs/armures/000032.log b/packs/armures/000070.log
similarity index 100%
rename from packs/armures/000032.log
rename to packs/armures/000070.log
diff --git a/packs/armures/CURRENT b/packs/armures/CURRENT
index caa721a..284d53f 100644
--- a/packs/armures/CURRENT
+++ b/packs/armures/CURRENT
@@ -1 +1 @@
-MANIFEST-000030
+MANIFEST-000068
diff --git a/packs/armures/LOG b/packs/armures/LOG
index 4ca34b8..7281843 100644
--- a/packs/armures/LOG
+++ b/packs/armures/LOG
@@ -1,7 +1,7 @@
-2025/01/31-11:46:44.857100 7ff40cdf86c0 Recovering log #28
-2025/01/31-11:46:44.867698 7ff40cdf86c0 Delete type=3 #26
-2025/01/31-11:46:44.867759 7ff40cdf86c0 Delete type=0 #28
-2025/01/31-11:54:21.921258 7ff4077fe6c0 Level-0 table #33: started
-2025/01/31-11:54:21.921301 7ff4077fe6c0 Level-0 table #33: 0 bytes OK
-2025/01/31-11:54:21.927470 7ff4077fe6c0 Delete type=0 #31
-2025/01/31-11:54:21.941807 7ff4077fe6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
+2025/02/03-22:58:38.873517 7f5b47fff6c0 Recovering log #66
+2025/02/03-22:58:38.934682 7f5b47fff6c0 Delete type=3 #64
+2025/02/03-22:58:38.934746 7f5b47fff6c0 Delete type=0 #66
+2025/02/03-23:00:39.711892 7f5b463ff6c0 Level-0 table #71: started
+2025/02/03-23:00:39.711920 7f5b463ff6c0 Level-0 table #71: 0 bytes OK
+2025/02/03-23:00:39.718489 7f5b463ff6c0 Delete type=0 #69
+2025/02/03-23:00:39.725430 7f5b463ff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
diff --git a/packs/armures/LOG.old b/packs/armures/LOG.old
index d2f23fe..3df312c 100644
--- a/packs/armures/LOG.old
+++ b/packs/armures/LOG.old
@@ -1,7 +1,7 @@
-2025/01/31-10:35:52.207464 7ff40d5f96c0 Recovering log #24
-2025/01/31-10:35:52.217843 7ff40d5f96c0 Delete type=3 #22
-2025/01/31-10:35:52.217933 7ff40d5f96c0 Delete type=0 #24
-2025/01/31-11:04:13.711638 7ff4077fe6c0 Level-0 table #29: started
-2025/01/31-11:04:13.711706 7ff4077fe6c0 Level-0 table #29: 0 bytes OK
-2025/01/31-11:04:13.717727 7ff4077fe6c0 Delete type=0 #27
-2025/01/31-11:04:13.737680 7ff4077fe6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
+2025/02/03-22:55:39.435305 7f5b46ffd6c0 Recovering log #62
+2025/02/03-22:55:39.448063 7f5b46ffd6c0 Delete type=3 #60
+2025/02/03-22:55:39.448145 7f5b46ffd6c0 Delete type=0 #62
+2025/02/03-22:56:09.811365 7f5b463ff6c0 Level-0 table #67: started
+2025/02/03-22:56:09.811409 7f5b463ff6c0 Level-0 table #67: 0 bytes OK
+2025/02/03-22:56:09.825285 7f5b463ff6c0 Delete type=0 #65
+2025/02/03-22:56:09.845202 7f5b463ff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
diff --git a/packs/armures/MANIFEST-000030 b/packs/armures/MANIFEST-000068
similarity index 78%
rename from packs/armures/MANIFEST-000030
rename to packs/armures/MANIFEST-000068
index 2e6471f..ebb8e4f 100644
Binary files a/packs/armures/MANIFEST-000030 and b/packs/armures/MANIFEST-000068 differ
diff --git a/packs/competences/000028.log b/packs/competences/000066.log
similarity index 100%
rename from packs/competences/000028.log
rename to packs/competences/000066.log
diff --git a/packs/competences/CURRENT b/packs/competences/CURRENT
index 8b15215..5d746f2 100644
--- a/packs/competences/CURRENT
+++ b/packs/competences/CURRENT
@@ -1 +1 @@
-MANIFEST-000026
+MANIFEST-000064
diff --git a/packs/competences/LOG b/packs/competences/LOG
index cf25139..e2fdc60 100644
--- a/packs/competences/LOG
+++ b/packs/competences/LOG
@@ -1,7 +1,7 @@
-2025/01/31-11:46:44.830669 7ff40ddfa6c0 Recovering log #24
-2025/01/31-11:46:44.841211 7ff40ddfa6c0 Delete type=3 #22
-2025/01/31-11:46:44.841295 7ff40ddfa6c0 Delete type=0 #24
-2025/01/31-11:54:21.935004 7ff4077fe6c0 Level-0 table #29: started
-2025/01/31-11:54:21.935040 7ff4077fe6c0 Level-0 table #29: 0 bytes OK
-2025/01/31-11:54:21.941608 7ff4077fe6c0 Delete type=0 #27
-2025/01/31-11:54:21.941830 7ff4077fe6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
+2025/02/03-22:58:38.713094 7f5b46ffd6c0 Recovering log #62
+2025/02/03-22:58:38.811025 7f5b46ffd6c0 Delete type=3 #60
+2025/02/03-22:58:38.811091 7f5b46ffd6c0 Delete type=0 #62
+2025/02/03-23:00:39.698334 7f5b463ff6c0 Level-0 table #67: started
+2025/02/03-23:00:39.698390 7f5b463ff6c0 Level-0 table #67: 0 bytes OK
+2025/02/03-23:00:39.704554 7f5b463ff6c0 Delete type=0 #65
+2025/02/03-23:00:39.725398 7f5b463ff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
diff --git a/packs/competences/LOG.old b/packs/competences/LOG.old
index e06f345..55950be 100644
--- a/packs/competences/LOG.old
+++ b/packs/competences/LOG.old
@@ -1,7 +1,7 @@
-2025/01/31-10:35:52.181034 7ff407fff6c0 Recovering log #20
-2025/01/31-10:35:52.190874 7ff407fff6c0 Delete type=3 #18
-2025/01/31-10:35:52.190954 7ff407fff6c0 Delete type=0 #20
-2025/01/31-11:04:13.731297 7ff4077fe6c0 Level-0 table #25: started
-2025/01/31-11:04:13.731324 7ff4077fe6c0 Level-0 table #25: 0 bytes OK
-2025/01/31-11:04:13.737594 7ff4077fe6c0 Delete type=0 #23
-2025/01/31-11:04:13.737713 7ff4077fe6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
+2025/02/03-22:55:39.408463 7f5b4c9fa6c0 Recovering log #58
+2025/02/03-22:55:39.419892 7f5b4c9fa6c0 Delete type=3 #56
+2025/02/03-22:55:39.419948 7f5b4c9fa6c0 Delete type=0 #58
+2025/02/03-22:56:09.755630 7f5b463ff6c0 Level-0 table #63: started
+2025/02/03-22:56:09.755689 7f5b463ff6c0 Level-0 table #63: 0 bytes OK
+2025/02/03-22:56:09.767928 7f5b463ff6c0 Delete type=0 #61
+2025/02/03-22:56:09.795616 7f5b463ff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
diff --git a/packs/competences/MANIFEST-000026 b/packs/competences/MANIFEST-000064
similarity index 74%
rename from packs/competences/MANIFEST-000026
rename to packs/competences/MANIFEST-000064
index cebb5ae..f363217 100644
Binary files a/packs/competences/MANIFEST-000026 and b/packs/competences/MANIFEST-000064 differ
diff --git a/packs/education/000023.ldb b/packs/education/000055.ldb
similarity index 80%
rename from packs/education/000023.ldb
rename to packs/education/000055.ldb
index 16318c0..dd2223e 100644
Binary files a/packs/education/000023.ldb and b/packs/education/000055.ldb differ
diff --git a/packs/education/000034.log b/packs/education/000076.log
similarity index 100%
rename from packs/education/000034.log
rename to packs/education/000076.log
diff --git a/packs/education/CURRENT b/packs/education/CURRENT
index 259cf53..f8d57cc 100644
--- a/packs/education/CURRENT
+++ b/packs/education/CURRENT
@@ -1 +1 @@
-MANIFEST-000032
+MANIFEST-000074
diff --git a/packs/education/LOG b/packs/education/LOG
index bfa1eb9..d8ffa25 100644
--- a/packs/education/LOG
+++ b/packs/education/LOG
@@ -1,7 +1,7 @@
-2025/01/31-11:46:44.870558 7ff407fff6c0 Recovering log #30
-2025/01/31-11:46:44.881583 7ff407fff6c0 Delete type=3 #28
-2025/01/31-11:46:44.881667 7ff407fff6c0 Delete type=0 #30
-2025/01/31-11:54:21.913634 7ff4077fe6c0 Level-0 table #35: started
-2025/01/31-11:54:21.913684 7ff4077fe6c0 Level-0 table #35: 0 bytes OK
-2025/01/31-11:54:21.921092 7ff4077fe6c0 Delete type=0 #33
-2025/01/31-11:54:21.941791 7ff4077fe6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
+2025/02/03-22:58:38.937489 7f5b4c9fa6c0 Recovering log #72
+2025/02/03-22:58:38.996464 7f5b4c9fa6c0 Delete type=3 #70
+2025/02/03-22:58:38.996519 7f5b4c9fa6c0 Delete type=0 #72
+2025/02/03-23:00:39.718801 7f5b463ff6c0 Level-0 table #77: started
+2025/02/03-23:00:39.718847 7f5b463ff6c0 Level-0 table #77: 0 bytes OK
+2025/02/03-23:00:39.725264 7f5b463ff6c0 Delete type=0 #75
+2025/02/03-23:00:39.725442 7f5b463ff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
diff --git a/packs/education/LOG.old b/packs/education/LOG.old
index 8853fc6..7bfc6c6 100644
--- a/packs/education/LOG.old
+++ b/packs/education/LOG.old
@@ -1,7 +1,7 @@
-2025/01/31-10:35:52.220665 7ff40cdf86c0 Recovering log #26
-2025/01/31-10:35:52.230157 7ff40cdf86c0 Delete type=3 #24
-2025/01/31-10:35:52.230214 7ff40cdf86c0 Delete type=0 #26
-2025/01/31-11:04:13.717844 7ff4077fe6c0 Level-0 table #31: started
-2025/01/31-11:04:13.717874 7ff4077fe6c0 Level-0 table #31: 0 bytes OK
-2025/01/31-11:04:13.723869 7ff4077fe6c0 Delete type=0 #29
-2025/01/31-11:04:13.737691 7ff4077fe6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
+2025/02/03-22:55:39.451121 7f5b47fff6c0 Recovering log #68
+2025/02/03-22:55:39.461341 7f5b47fff6c0 Delete type=3 #66
+2025/02/03-22:55:39.461419 7f5b47fff6c0 Delete type=0 #68
+2025/02/03-22:56:09.739226 7f5b463ff6c0 Level-0 table #73: started
+2025/02/03-22:56:09.739289 7f5b463ff6c0 Level-0 table #73: 0 bytes OK
+2025/02/03-22:56:09.755387 7f5b463ff6c0 Delete type=0 #71
+2025/02/03-22:56:09.795602 7f5b463ff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
diff --git a/packs/education/MANIFEST-000032 b/packs/education/MANIFEST-000032
deleted file mode 100644
index a8a546e..0000000
Binary files a/packs/education/MANIFEST-000032 and /dev/null differ
diff --git a/packs/education/MANIFEST-000074 b/packs/education/MANIFEST-000074
new file mode 100644
index 0000000..48c5522
Binary files /dev/null and b/packs/education/MANIFEST-000074 differ
diff --git a/packs/graces/000032.log b/packs/graces/000070.log
similarity index 100%
rename from packs/graces/000032.log
rename to packs/graces/000070.log
diff --git a/packs/graces/CURRENT b/packs/graces/CURRENT
index caa721a..284d53f 100644
--- a/packs/graces/CURRENT
+++ b/packs/graces/CURRENT
@@ -1 +1 @@
-MANIFEST-000030
+MANIFEST-000068
diff --git a/packs/graces/LOG b/packs/graces/LOG
index 8793e14..0620fec 100644
--- a/packs/graces/LOG
+++ b/packs/graces/LOG
@@ -1,7 +1,7 @@
-2025/01/31-11:46:44.884470 7ff40ddfa6c0 Recovering log #28
-2025/01/31-11:46:44.894138 7ff40ddfa6c0 Delete type=3 #26
-2025/01/31-11:46:44.894195 7ff40ddfa6c0 Delete type=0 #28
-2025/01/31-11:54:21.948160 7ff4077fe6c0 Level-0 table #33: started
-2025/01/31-11:54:21.948194 7ff4077fe6c0 Level-0 table #33: 0 bytes OK
-2025/01/31-11:54:21.955532 7ff4077fe6c0 Delete type=0 #31
-2025/01/31-11:54:21.968494 7ff4077fe6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
+2025/02/03-22:58:39.000429 7f5b46ffd6c0 Recovering log #66
+2025/02/03-22:58:39.053445 7f5b46ffd6c0 Delete type=3 #64
+2025/02/03-22:58:39.053656 7f5b46ffd6c0 Delete type=0 #66
+2025/02/03-23:00:39.725538 7f5b463ff6c0 Level-0 table #71: started
+2025/02/03-23:00:39.725596 7f5b463ff6c0 Level-0 table #71: 0 bytes OK
+2025/02/03-23:00:39.731775 7f5b463ff6c0 Delete type=0 #69
+2025/02/03-23:00:39.756486 7f5b463ff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
diff --git a/packs/graces/LOG.old b/packs/graces/LOG.old
index 08ab2ee..d9d1abe 100644
--- a/packs/graces/LOG.old
+++ b/packs/graces/LOG.old
@@ -1,7 +1,7 @@
-2025/01/31-10:35:52.236046 7ff407fff6c0 Recovering log #24
-2025/01/31-10:35:52.246980 7ff407fff6c0 Delete type=3 #22
-2025/01/31-10:35:52.247064 7ff407fff6c0 Delete type=0 #24
-2025/01/31-11:04:13.756831 7ff4077fe6c0 Level-0 table #29: started
-2025/01/31-11:04:13.756871 7ff4077fe6c0 Level-0 table #29: 0 bytes OK
-2025/01/31-11:04:13.763061 7ff4077fe6c0 Delete type=0 #27
-2025/01/31-11:04:13.763275 7ff4077fe6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
+2025/02/03-22:55:39.466809 7f5b4c9fa6c0 Recovering log #62
+2025/02/03-22:55:39.476938 7f5b4c9fa6c0 Delete type=3 #60
+2025/02/03-22:55:39.477075 7f5b4c9fa6c0 Delete type=0 #62
+2025/02/03-22:56:09.782715 7f5b463ff6c0 Level-0 table #67: started
+2025/02/03-22:56:09.782754 7f5b463ff6c0 Level-0 table #67: 0 bytes OK
+2025/02/03-22:56:09.795445 7f5b463ff6c0 Delete type=0 #65
+2025/02/03-22:56:09.795640 7f5b463ff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
diff --git a/packs/graces/MANIFEST-000030 b/packs/graces/MANIFEST-000068
similarity index 75%
rename from packs/graces/MANIFEST-000030
rename to packs/graces/MANIFEST-000068
index fa15504..09da93a 100644
Binary files a/packs/graces/MANIFEST-000030 and b/packs/graces/MANIFEST-000068 differ
diff --git a/packs/maladies/000032.log b/packs/maladies/000070.log
similarity index 100%
rename from packs/maladies/000032.log
rename to packs/maladies/000070.log
diff --git a/packs/maladies/CURRENT b/packs/maladies/CURRENT
index caa721a..284d53f 100644
--- a/packs/maladies/CURRENT
+++ b/packs/maladies/CURRENT
@@ -1 +1 @@
-MANIFEST-000030
+MANIFEST-000068
diff --git a/packs/maladies/LOG b/packs/maladies/LOG
index ba255ba..a73ed8e 100644
--- a/packs/maladies/LOG
+++ b/packs/maladies/LOG
@@ -1,7 +1,7 @@
-2025/01/31-11:46:44.896163 7ff40d5f96c0 Recovering log #28
-2025/01/31-11:46:44.906324 7ff40d5f96c0 Delete type=3 #26
-2025/01/31-11:46:44.906382 7ff40d5f96c0 Delete type=0 #28
-2025/01/31-11:54:21.955722 7ff4077fe6c0 Level-0 table #33: started
-2025/01/31-11:54:21.955751 7ff4077fe6c0 Level-0 table #33: 0 bytes OK
-2025/01/31-11:54:21.961763 7ff4077fe6c0 Delete type=0 #31
-2025/01/31-11:54:21.968509 7ff4077fe6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
+2025/02/03-22:58:39.056439 7f5b477fe6c0 Recovering log #66
+2025/02/03-22:58:39.113609 7f5b477fe6c0 Delete type=3 #64
+2025/02/03-22:58:39.113751 7f5b477fe6c0 Delete type=0 #66
+2025/02/03-23:00:39.731972 7f5b463ff6c0 Level-0 table #71: started
+2025/02/03-23:00:39.732009 7f5b463ff6c0 Level-0 table #71: 0 bytes OK
+2025/02/03-23:00:39.738907 7f5b463ff6c0 Delete type=0 #69
+2025/02/03-23:00:39.756507 7f5b463ff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
diff --git a/packs/maladies/LOG.old b/packs/maladies/LOG.old
index 043c701..3b298fb 100644
--- a/packs/maladies/LOG.old
+++ b/packs/maladies/LOG.old
@@ -1,7 +1,7 @@
-2025/01/31-10:35:52.250782 7ff40ddfa6c0 Recovering log #24
-2025/01/31-10:35:52.261073 7ff40ddfa6c0 Delete type=3 #22
-2025/01/31-10:35:52.261148 7ff40ddfa6c0 Delete type=0 #24
-2025/01/31-11:04:13.749864 7ff4077fe6c0 Level-0 table #29: started
-2025/01/31-11:04:13.749896 7ff4077fe6c0 Level-0 table #29: 0 bytes OK
-2025/01/31-11:04:13.756656 7ff4077fe6c0 Delete type=0 #27
-2025/01/31-11:04:13.763260 7ff4077fe6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
+2025/02/03-22:55:39.480778 7f5b477fe6c0 Recovering log #62
+2025/02/03-22:55:39.490923 7f5b477fe6c0 Delete type=3 #60
+2025/02/03-22:55:39.490983 7f5b477fe6c0 Delete type=0 #62
+2025/02/03-22:56:09.768155 7f5b463ff6c0 Level-0 table #67: started
+2025/02/03-22:56:09.768198 7f5b463ff6c0 Level-0 table #67: 0 bytes OK
+2025/02/03-22:56:09.782479 7f5b463ff6c0 Delete type=0 #65
+2025/02/03-22:56:09.795627 7f5b463ff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
diff --git a/packs/maladies/MANIFEST-000030 b/packs/maladies/MANIFEST-000068
similarity index 76%
rename from packs/maladies/MANIFEST-000030
rename to packs/maladies/MANIFEST-000068
index 6949575..676cc42 100644
Binary files a/packs/maladies/MANIFEST-000030 and b/packs/maladies/MANIFEST-000068 differ
diff --git a/packs/scenes/000005.ldb b/packs/scenes/000005.ldb
new file mode 100644
index 0000000..384a33e
Binary files /dev/null and b/packs/scenes/000005.ldb differ
diff --git a/packs/simples/000032.log b/packs/scenes/000008.log
similarity index 100%
rename from packs/simples/000032.log
rename to packs/scenes/000008.log
diff --git a/packs/scenes/000009.ldb b/packs/scenes/000009.ldb
new file mode 100644
index 0000000..007eaac
Binary files /dev/null and b/packs/scenes/000009.ldb differ
diff --git a/packs/scenes/CURRENT b/packs/scenes/CURRENT
new file mode 100644
index 0000000..f7753e2
--- /dev/null
+++ b/packs/scenes/CURRENT
@@ -0,0 +1 @@
+MANIFEST-000006
diff --git a/packs/scenes/LOCK b/packs/scenes/LOCK
new file mode 100644
index 0000000..e69de29
diff --git a/packs/scenes/LOG b/packs/scenes/LOG
new file mode 100644
index 0000000..5428310
--- /dev/null
+++ b/packs/scenes/LOG
@@ -0,0 +1,7 @@
+2025/02/03-22:58:39.184051 7f5b4c9fa6c0 Recovering log #4
+2025/02/03-22:58:39.237212 7f5b4c9fa6c0 Delete type=3 #2
+2025/02/03-22:58:39.237307 7f5b4c9fa6c0 Delete type=0 #4
+2025/02/03-23:00:39.746652 7f5b463ff6c0 Level-0 table #9: started
+2025/02/03-23:00:39.750249 7f5b463ff6c0 Level-0 table #9: 1475 bytes OK
+2025/02/03-23:00:39.756314 7f5b463ff6c0 Delete type=0 #7
+2025/02/03-23:00:39.756534 7f5b463ff6c0 Manual compaction at level-0 from '!scenes!FJXugdbkBpEJEdR6' @ 72057594037927935 : 1 .. '!scenes!FJXugdbkBpEJEdR6' @ 0 : 0; will stop at (end)
diff --git a/packs/scenes/LOG.old b/packs/scenes/LOG.old
new file mode 100644
index 0000000..3873adf
--- /dev/null
+++ b/packs/scenes/LOG.old
@@ -0,0 +1,5 @@
+2025/02/03-22:55:39.520711 7f5b4c9fa6c0 Delete type=3 #1
+2025/02/03-22:56:09.795741 7f5b463ff6c0 Level-0 table #5: started
+2025/02/03-22:56:09.801852 7f5b463ff6c0 Level-0 table #5: 1348 bytes OK
+2025/02/03-22:56:09.811173 7f5b463ff6c0 Delete type=0 #3
+2025/02/03-22:56:09.845181 7f5b463ff6c0 Manual compaction at level-0 from '!scenes!T55C6Rrtsfqgk7A9' @ 72057594037927935 : 1 .. '!scenes!T55C6Rrtsfqgk7A9' @ 0 : 0; will stop at (end)
diff --git a/packs/scenes/MANIFEST-000006 b/packs/scenes/MANIFEST-000006
new file mode 100644
index 0000000..b14aa80
Binary files /dev/null and b/packs/scenes/MANIFEST-000006 differ
diff --git a/packs/simples/000070.log b/packs/simples/000070.log
new file mode 100644
index 0000000..e69de29
diff --git a/packs/simples/CURRENT b/packs/simples/CURRENT
index caa721a..284d53f 100644
--- a/packs/simples/CURRENT
+++ b/packs/simples/CURRENT
@@ -1 +1 @@
-MANIFEST-000030
+MANIFEST-000068
diff --git a/packs/simples/LOG b/packs/simples/LOG
index a529639..376831f 100644
--- a/packs/simples/LOG
+++ b/packs/simples/LOG
@@ -1,7 +1,7 @@
-2025/01/31-11:46:44.908555 7ff40cdf86c0 Recovering log #28
-2025/01/31-11:46:44.919483 7ff40cdf86c0 Delete type=3 #26
-2025/01/31-11:46:44.919542 7ff40cdf86c0 Delete type=0 #28
-2025/01/31-11:54:21.961885 7ff4077fe6c0 Level-0 table #33: started
-2025/01/31-11:54:21.961918 7ff4077fe6c0 Level-0 table #33: 0 bytes OK
-2025/01/31-11:54:21.968366 7ff4077fe6c0 Delete type=0 #31
-2025/01/31-11:54:21.968523 7ff4077fe6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
+2025/02/03-22:58:39.116335 7f5b47fff6c0 Recovering log #66
+2025/02/03-22:58:39.180738 7f5b47fff6c0 Delete type=3 #64
+2025/02/03-22:58:39.180880 7f5b47fff6c0 Delete type=0 #66
+2025/02/03-23:00:39.739100 7f5b463ff6c0 Level-0 table #71: started
+2025/02/03-23:00:39.739142 7f5b463ff6c0 Level-0 table #71: 0 bytes OK
+2025/02/03-23:00:39.746461 7f5b463ff6c0 Delete type=0 #69
+2025/02/03-23:00:39.756517 7f5b463ff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
diff --git a/packs/simples/LOG.old b/packs/simples/LOG.old
index 74ddf1a..3f08925 100644
--- a/packs/simples/LOG.old
+++ b/packs/simples/LOG.old
@@ -1,7 +1,7 @@
-2025/01/31-10:35:52.264998 7ff40d5f96c0 Recovering log #24
-2025/01/31-10:35:52.275223 7ff40d5f96c0 Delete type=3 #22
-2025/01/31-10:35:52.275287 7ff40d5f96c0 Delete type=0 #24
-2025/01/31-11:04:13.743745 7ff4077fe6c0 Level-0 table #29: started
-2025/01/31-11:04:13.743773 7ff4077fe6c0 Level-0 table #29: 0 bytes OK
-2025/01/31-11:04:13.749756 7ff4077fe6c0 Delete type=0 #27
-2025/01/31-11:04:13.763245 7ff4077fe6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
+2025/02/03-22:55:39.493788 7f5b46ffd6c0 Recovering log #62
+2025/02/03-22:55:39.503575 7f5b46ffd6c0 Delete type=3 #60
+2025/02/03-22:55:39.503705 7f5b46ffd6c0 Delete type=0 #62
+2025/02/03-22:56:09.825483 7f5b463ff6c0 Level-0 table #67: started
+2025/02/03-22:56:09.825510 7f5b463ff6c0 Level-0 table #67: 0 bytes OK
+2025/02/03-22:56:09.836693 7f5b463ff6c0 Delete type=0 #65
+2025/02/03-22:56:09.845218 7f5b463ff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
diff --git a/packs/simples/MANIFEST-000030 b/packs/simples/MANIFEST-000068
similarity index 75%
rename from packs/simples/MANIFEST-000030
rename to packs/simples/MANIFEST-000068
index c7d69e9..2d78c00 100644
Binary files a/packs/simples/MANIFEST-000030 and b/packs/simples/MANIFEST-000068 differ
diff --git a/postcss/tedeum.css b/postcss/tedeum.css
index 03832c7..9ea0dfb 100644
--- a/postcss/tedeum.css
+++ b/postcss/tedeum.css
@@ -381,6 +381,15 @@ table {
padding: 0 3px;
}
+.questionnaire-reponse {
+ max-width: 42rem;
+ margin-left: 1rem;
+}
+
+.questionnaire-element {
+ margin-top: 0.5rem;
+}
+
input[type="text"], select[type="text"] {
background: white;
color: #494e6b;
@@ -1015,7 +1024,7 @@ ul, li {
color: #CCC;
}
& > img {
- content: url(../images/ui/te-deum_logo_small_01.webp);
+ content: url(../images/ui/logo_tedeum_pause.webp);
height: 200px;
width: 200px;
top: -200px;
@@ -1023,7 +1032,7 @@ ul, li {
}
}
#logo {
- content: url(../images/ui/te-deum_logo_small_01.webp);
+ content: url(../images/ui/logo_tedeum_pause.webp);
width: 100px;
height: 60px;
}
@@ -1232,4 +1241,20 @@ ul, li {
display: flex;
justify-content: center;
align-items: center;
+}
+
+.fvtt-te-deum-character-creator {
+ font-family: "GreatPrimer";
+ font-size: 0.9rem;
+ .field-title {
+ font-weight: bold;
+ }
+ .status-section {
+ display: block;
+ max-width: 34rem;
+ }
+}
+
+.item-name-label {
+ min-width: 12rem;
}
\ No newline at end of file
diff --git a/styles/tedeum.css b/styles/tedeum.css
index ea4e79c..0564dfa 100644
--- a/styles/tedeum.css
+++ b/styles/tedeum.css
@@ -361,6 +361,15 @@ table {
padding: 0 3px;
}
+.questionnaire-reponse {
+ max-width: 42rem;
+ margin-left: 1rem;
+}
+
+.questionnaire-element {
+ margin-top: 0.5rem;
+}
+
input[type="text"], select[type="text"] {
background: white;
color: #494e6b;
@@ -1169,4 +1178,22 @@ ul, li {
display: flex;
justify-content: center;
align-items: center;
+}
+
+.fvtt-te-deum-character-creator {
+ font-family: "GreatPrimer";
+ font-size: 0.9rem;
+}
+
+.fvtt-te-deum-character-creator .field-title {
+ font-weight: bold;
+ }
+
+.fvtt-te-deum-character-creator .status-section {
+ display: block;
+ max-width: 34rem;
+ }
+
+.item-name-label {
+ min-width: 12rem;
}
\ No newline at end of file
diff --git a/system.json b/system.json
index 1267f60..f5f2280 100644
--- a/system.json
+++ b/system.json
@@ -105,6 +105,18 @@
"PLAYER": "OBSERVER",
"ASSISTANT": "OWNER"
}
+ },
+ {
+ "label": "Scenes",
+ "type": "Scene",
+ "name": "scenes",
+ "path": "packs/scenes",
+ "system": "fvtt-te-deum",
+ "flags": {},
+ "ownership": {
+ "PLAYER": "OBSERVER",
+ "ASSISTANT": "OWNER"
+ }
}
],
"license": "LICENSE.txt",
@@ -126,7 +138,7 @@
"url": "https://www.uberwald.me/gitea/public/fvtt-te-deum",
"version": "12.0.9",
"download": "https://www.uberwald.me/gitea/public/fvtt-te-deum/archive/fvtt-te-deum-v12.0.9.zip",
- "background": "",
+ "background": "systems/fvtt-te-deum/images/ui/tdeum_welcome_page_01.webp",
"flags": {
"hotReload": {
"extensions": [
diff --git a/template.json b/template.json
index bb34255..cf3d26e 100644
--- a/template.json
+++ b/template.json
@@ -1,7 +1,7 @@
{
"Actor": {
"types": ["pj", "pnj"],
- "htmlFields": ["description"],
+ "htmlFields": ["description", "equipmentfree"],
"pj": {},
"pnj": {}
},
diff --git a/templates/actors/actor-sheet.hbs b/templates/actors/actor-sheet.hbs
index af7208b..0ded63c 100644
--- a/templates/actors/actor-sheet.hbs
+++ b/templates/actors/actor-sheet.hbs
@@ -318,6 +318,16 @@
{{!-- Equipement Tab --}}
+
+
@@ -355,9 +365,6 @@
{{/each}}
-
-
-
{{!-- Biography Tab --}}
@@ -366,14 +373,19 @@
+
+
+
+
+
+ Education
+
+
+
+
+
+
+ {{#each educations as |education key|}}
+
+
+ {{ education.name}}
+ {{getEducationEtape education.system.etape}}
+
+
+
+ {{#if @root.isGM}}
+
+ {{/if}}
+
+
+ {{/each}}
+
+