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 --}}
+
+ {{#each system.fortune as |fortune key|}} +
+ + +
+ {{/each}} +
+

@@ -355,9 +365,6 @@ {{/each}} - -
-
{{!-- Biography Tab --}} @@ -366,14 +373,19 @@
    +
  • + + +
  • -
  • -
@@ -381,24 +393,53 @@
  • - - Origine sociale +
  • -
  • -
+ +
+
    +
  • + +

    +
    +
     
    +
    +
    + +
  • + {{#each educations as |education key|}} +
  • + + {{ education.name}} + {{getEducationEtape education.system.etape}} +
     
    +
    + + {{#if @root.isGM}} + + {{/if}} +
    +
  • + {{/each}} +
+

diff --git a/templates/dialogs/character-creator-finished.hbs b/templates/dialogs/character-creator-finished.hbs new file mode 100644 index 0000000..66e1b51 --- /dev/null +++ b/templates/dialogs/character-creator-finished.hbs @@ -0,0 +1,17 @@ +
+ +

Création de personnage terminée !

+ +
+ L'ensemble des choix a été appliqué sur la fiche de personnage nouvellement créée. + + Le Trousseau issu de l'Age Viril a été copié dans zone d'équipement libre de la fiche de personnage, à vous de créer les objets de jeu nécessaires (armes, richesses, etc.). + + Vous devez maintenant choisir un Grâce, en fonction des pré-requis de votre personnage, et l'appliquer sur la fiche de personnage. + + Vous pouvez également choisir un nom pour votre personnage, et le renseigner dans la fiche de personnage. + + Enfin, vous pouvez choisir un portrait pour votre personnage. + +
+
\ No newline at end of file diff --git a/templates/dialogs/character-creator-origine.hbs b/templates/dialogs/character-creator-origine.hbs index b2473fa..c0e3c4a 100644 --- a/templates/dialogs/character-creator-origine.hbs +++ b/templates/dialogs/character-creator-origine.hbs @@ -1,6 +1,7 @@
-

{{title}}

+

{{title}}

+

{{subtitle}}

- {{selectOptions caracList valueAttr="id" labelAttr="label"}} - -
+

{{title}}

+

{{subtitle}}

- {{#each competences as |comp idx|}} - {{#if comp.valid}} -
- -
- {{/if}} - {{/each}} +
+ +
+ + {{> systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs}}
\ No newline at end of file diff --git a/templates/dialogs/character-creator-select-competences.hbs b/templates/dialogs/character-creator-select-competences.hbs new file mode 100644 index 0000000..0705b10 --- /dev/null +++ b/templates/dialogs/character-creator-select-competences.hbs @@ -0,0 +1,22 @@ +
+ +

{{title}}

+

{{subtitle}}

+ + {{#each fixedCompetences as |compName idx|}} +
+ +
+ {{/each}} + + {{#if hasSelectCompetences}} +
+ +
+ {{/if}} + + {{> systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs}} + +
\ No newline at end of file diff --git a/templates/dialogs/character-creator-select-questions.hbs b/templates/dialogs/character-creator-select-questions.hbs index 44bbf5d..2a10457 100644 --- a/templates/dialogs/character-creator-select-questions.hbs +++ b/templates/dialogs/character-creator-select-questions.hbs @@ -1,12 +1,29 @@
-

{{title}}

+

{{title}}

+

{{subtitle}}

+
{{question}}
- -
- {{radioBoxes 'responseKey' responsesRadio checked="reponse1" valueAttr="id" labelAttr="label"}} + +
+ {{#each responsesRadio as |response key|}} +
+ + + {{#if response.competences}} + + {{/if}} + +
+ {{/each}}
+ {{> systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs}} +
\ No newline at end of file diff --git a/templates/dialogs/character-creator-select-stage-name.hbs b/templates/dialogs/character-creator-select-stage-name.hbs index 21249cc..b212d53 100644 --- a/templates/dialogs/character-creator-select-stage-name.hbs +++ b/templates/dialogs/character-creator-select-stage-name.hbs @@ -1,10 +1,14 @@
-

{{title}}

+

{{title}}

+

{{subtitle}}

+
+ {{> systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs}} +
\ No newline at end of file diff --git a/templates/dialogs/partial-common-roll-dialog.hbs b/templates/dialogs/partial-common-roll-dialog.hbs deleted file mode 100644 index 327bf48..0000000 --- a/templates/dialogs/partial-common-roll-dialog.hbs +++ /dev/null @@ -1,90 +0,0 @@ - {{#if skill}} -
- {{localize skill.name}} : - {{skill.value}} -
- - {{#if impactMalus}} -
- {{localize "ECRY.ui.impactmalus"}} : - {{impactMalus}} -
- {{/if}} - -
- {{localize "ECRY.ui.skilltranscendence"}} : - -
- - {{#if forcedSpec}} -
- {{localize "ECRY.ui.spec"}} : - {{forcedSpec.name}} (+{{forcedSpec.system.bonus}}) -
- {{else}} -
- {{localize "ECRY.ui.spec"}} : - -
- {{/if}} - - {{#if spleen}} -
- {{localize "ECRY.ui.applyspleen"}} {{spleen.name}} - -
- {{/if}} - - {{#if ideal}} -
- {{localize "ECRY.ui.applyideal"}} {{ideal.name}} - -
- {{/if}} - -
- {{localize "ECRY.ui.traitbonus"}} : - -
- -
- {{localize "ECRY.ui.traitmalus"}} : - -
- - {{/if}} - - -
- Bonus/Malus : - -
- diff --git a/templates/dialogs/partial-creator-status.hbs b/templates/dialogs/partial-creator-status.hbs new file mode 100644 index 0000000..b9d41d6 --- /dev/null +++ b/templates/dialogs/partial-creator-status.hbs @@ -0,0 +1,15 @@ +
+
+
+ + {{#each caracBonus as |bonus key|}} + + {{/each}} +
+
+ + {{#each competenceBonus as |bonus key|}} + + {{/each}} +
+
\ No newline at end of file diff --git a/templates/items/item-education-sheet.hbs b/templates/items/item-education-sheet.hbs index 0a5c0af..b577436 100644 --- a/templates/items/item-education-sheet.hbs +++ b/templates/items/item-education-sheet.hbs @@ -25,16 +25,22 @@ - {{#each system.accessible as |access accId|}} -
  • - - -
  • - {{/each}} + {{#if hasMultiplier}} + {{else}} + + {{#each system.accessible as |access accId|}} +
  • + + +
  • + {{/each}} + {{/if}} +
  • - +
  • {{#each system.caracteristiques as |carac caracKey|}} {{#if carac.valid}} @@ -61,21 +67,47 @@ {{/if}} {{/each}} + {{#if canCompetencesOpt}} +
  • + + +
  • + {{#if system.hasCompetencesOpt}} +
  • + + +
  • + {{#each system.competencesOpt as |comp compKey|}} +
  • + + +
  • + {{/each}} + {{/if}} + {{/if}} + + {{#if hasMultiplier}}
  • - +
  • - + +
  • +
  • + +
  • {{/if}} + {{#if hasQuestionnaire}} {{#each system.questionnaire as |question quesKey|}}
    @@ -89,17 +121,19 @@ data-dtype="String" /> - + {{#if reponse.toSelect}} - {{#each reponse.compList as |comp compKey|}} - - {{/each}} + {{#each reponse.compList as |comp compKey|}} + + {{/each}} {{else}} - + {{/if}} @@ -108,6 +142,16 @@ {{/each}} {{/if}} + {{#if hasDebouches}} + + {{#each system.debouches as |debouche debKey|}} +
  • + +
  • + {{/each}} + {{/if}} + +