First full step for character creation
This commit is contained in:
		
							
								
								
									
										366
									
								
								modules/app/tedeum-character-creator.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										366
									
								
								modules/app/tedeum-character-creator.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,366 @@
 | 
			
		||||
import { TeDeumUtility } from "../common/tedeum-utility.js";
 | 
			
		||||
 | 
			
		||||
export class TeDeumCharacterCreator {
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  async init() {
 | 
			
		||||
    this.stages = {}
 | 
			
		||||
    this.currentStage = "origineSociale"
 | 
			
		||||
    this.sex = undefined
 | 
			
		||||
    this.origineSociale = undefined
 | 
			
		||||
    this.religion = undefined
 | 
			
		||||
    this.caracBonus = {}
 | 
			
		||||
    this.competenceBonus = {}
 | 
			
		||||
    this.competences = TeDeumUtility.getCompetencesForDropDown()
 | 
			
		||||
 | 
			
		||||
    for (let k in game.system.tedeum.config.caracteristiques) {
 | 
			
		||||
      this.caracBonus[k] = { value: 0 }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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) {
 | 
			
		||||
      this.stages[edu.system.etape].items.push(edu)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this.processStage()
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  increaseCompetence(compName) {
 | 
			
		||||
    compName = compName.toLowerCase()
 | 
			
		||||
    if (!this.competenceBonus[compName]) {
 | 
			
		||||
      this.competenceBonus[compName] = { value: 1 }
 | 
			
		||||
    } else {
 | 
			
		||||
      this.competenceBonus[compName].value += 1
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  processReponses(question) {
 | 
			
		||||
    let fullResponses = []
 | 
			
		||||
    for (let key in question.reponses) {
 | 
			
		||||
      let response = question.reponses[key]
 | 
			
		||||
      fullResponses.push({ id: key, label: `${response.reponse} (${response.compName} +1)` })
 | 
			
		||||
    }
 | 
			
		||||
    return fullResponses
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  processReponsesRadio(question) {
 | 
			
		||||
    let fullResponses = {}
 | 
			
		||||
    for (let key in question.reponses) {
 | 
			
		||||
      let response = question.reponses[key]
 | 
			
		||||
      fullResponses[key]  = `${response.reponse} (${response.compName} +1)`
 | 
			
		||||
    }
 | 
			
		||||
    return fullResponses
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  async askStageName(context) {
 | 
			
		||||
    const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-stage-name.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) => {
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
    return choiceResult
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  processCompetences(stage) {
 | 
			
		||||
    for (let compKey in stage.system.competences) {
 | 
			
		||||
      let comp = stage.system.competences[compKey]
 | 
			
		||||
      if (comp.valid && comp.compName !== "") {
 | 
			
		||||
        this.increaseCompetence(comp.compName)
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  async askQuestionnaire(stage, context) {
 | 
			
		||||
    for (let key in stage.system.questionnaire) {
 | 
			
		||||
      let question = stage.system.questionnaire[key]
 | 
			
		||||
      if (question.question === "") { break }
 | 
			
		||||
 | 
			
		||||
      context.question = question.question
 | 
			
		||||
      context.responses = this.processReponses(question)
 | 
			
		||||
      context.responsesRadio = this.processReponsesRadio(question)
 | 
			
		||||
 | 
			
		||||
      const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-questions.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) { return }
 | 
			
		||||
      let selectedResponse = question.reponses[choiceResult.responseKey]
 | 
			
		||||
      console.log(choiceResult, selectedResponse, question)
 | 
			
		||||
      this.increaseCompetence(selectedResponse.compName)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*------------- -------------------------------*/
 | 
			
		||||
  async askCarac(stage, context) {
 | 
			
		||||
    for (let i = 0; i < stage.system.nbChoixCarac; i++) {
 | 
			
		||||
      context.caracList = []
 | 
			
		||||
      for (let caracKey in stage.system.caracteristiques) {
 | 
			
		||||
        let carac = stage.system.caracteristiques[caracKey]
 | 
			
		||||
        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({
 | 
			
		||||
        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) { return }
 | 
			
		||||
      this.caracBonus[choiceResult.carac].value += 1
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  async renderOrigineSociale(stage) {
 | 
			
		||||
    let context = {
 | 
			
		||||
      title: "Création de personnage - 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 label = "Valider le choix de l'Origine Sociale"
 | 
			
		||||
    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) => { }
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    if (choiceResult == null) { return }
 | 
			
		||||
 | 
			
		||||
    console.log(choiceResult)
 | 
			
		||||
 | 
			
		||||
    this.sexe = choiceResult.sexe
 | 
			
		||||
    this.religion = choiceResult.religion
 | 
			
		||||
    this.origineSociale = foundry.utils.duplicate(game.system.tedeum.config.origineSociale[choiceResult.origineSociale])
 | 
			
		||||
    this.currentStage = "pouponniere"
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  async renderPouponniere(stage) {
 | 
			
		||||
 | 
			
		||||
    // Filter available pouponniere from origineSociale
 | 
			
		||||
    let pouponniereItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible)
 | 
			
		||||
 | 
			
		||||
    let context = {
 | 
			
		||||
      title: "Création de personnage - La Pouponnière",
 | 
			
		||||
      label: "Valider le choix de la Pouponnière",
 | 
			
		||||
      choices: pouponniereItems
 | 
			
		||||
    }
 | 
			
		||||
    let choiceResult = await this.askStageName(context)
 | 
			
		||||
    if (choiceResult == null) { return }
 | 
			
		||||
 | 
			
		||||
    this.pouponniere = foundry.utils.duplicate(stage.items.find(item => item.id === choiceResult.selectedItem))
 | 
			
		||||
    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.title = "Création de personnage - La Pouponnière - Questions"
 | 
			
		||||
    context.label = "Valider cette réponse"
 | 
			
		||||
    await this.askQuestionnaire(this.pouponniere, context)
 | 
			
		||||
 | 
			
		||||
    this.currentStage = "petitsgrimauds"
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  async renderPetitsGrimauds(stage) {
 | 
			
		||||
    // Filter available pouponniere from origineSociale
 | 
			
		||||
    let grimaudsItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible)
 | 
			
		||||
 | 
			
		||||
    let context = {
 | 
			
		||||
      title: "Création de personnage - Les Petits Grimauds",
 | 
			
		||||
      label: "Valider le choix des Petits Grimauds",
 | 
			
		||||
      choices: grimaudsItems
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let choiceResult = await this.askStageName(context)
 | 
			
		||||
    if (choiceResult == null) { return }
 | 
			
		||||
 | 
			
		||||
    this.grimauds = foundry.utils.duplicate(stage.items.find(item => item.id === choiceResult.selectedItem))
 | 
			
		||||
    TeDeumUtility.prepareEducationContent(this.grimauds);
 | 
			
		||||
    console.log(choiceResult, this.grimauds)
 | 
			
		||||
 | 
			
		||||
    context.label = "Valider l'augmentation de caracteristique"
 | 
			
		||||
    await this.askCarac(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)
 | 
			
		||||
 | 
			
		||||
    this.currentStage = "rosevie"
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  async renderRosesDeLaVie(stage) {
 | 
			
		||||
    // Filter available pouponniere from origineSociale
 | 
			
		||||
    let rosesItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible)
 | 
			
		||||
 | 
			
		||||
    let context = {
 | 
			
		||||
      title: "Création de personnage - Les Roses de la Vie",
 | 
			
		||||
      label: "Valider le choix des Roses de la Vie",
 | 
			
		||||
      choices: rosesItems
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let choiceResult = await this.askStageName(context)
 | 
			
		||||
    if (choiceResult == null) { return }
 | 
			
		||||
 | 
			
		||||
    this.roses = foundry.utils.duplicate(stage.items.find(item => item.id === choiceResult.selectedItem))
 | 
			
		||||
    TeDeumUtility.prepareEducationContent(this.roses);
 | 
			
		||||
    console.log(choiceResult, this.roses)
 | 
			
		||||
 | 
			
		||||
    context.label = "Valider l'augmentation de caracteristique"
 | 
			
		||||
    await this.askCarac(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)
 | 
			
		||||
 | 
			
		||||
    this.currentStage = "ageviril"
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  async renderAgeViril(stage) {
 | 
			
		||||
    // Filter available pouponniere from origineSociale
 | 
			
		||||
    let ageVirilItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible)
 | 
			
		||||
 | 
			
		||||
    let context = {
 | 
			
		||||
      title: "Création de personnage - L'Age Viril",
 | 
			
		||||
      label: "Valider le choix de l'Age Viril",
 | 
			
		||||
      choices: ageVirilItems
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let choiceResult = await this.askStageName(context)
 | 
			
		||||
    if (choiceResult == null) { return }
 | 
			
		||||
 | 
			
		||||
    this.ageViril = foundry.utils.duplicate(stage.items.find(item => item.id === choiceResult.selectedItem))
 | 
			
		||||
    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)
 | 
			
		||||
 | 
			
		||||
    this.currentStage = "finished"
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /*--------------------------------------------*/
 | 
			
		||||
  async processStage() {
 | 
			
		||||
    while (this.currentStage !== "finished") {
 | 
			
		||||
      let stage = this.stages[this.currentStage]
 | 
			
		||||
      switch (this.currentStage) {
 | 
			
		||||
        case "origineSociale":
 | 
			
		||||
          await this.renderOrigineSociale(stage)
 | 
			
		||||
          break
 | 
			
		||||
        case "pouponniere":
 | 
			
		||||
          await this.renderPouponniere(stage)
 | 
			
		||||
          break
 | 
			
		||||
        case "petitsgrimauds":
 | 
			
		||||
          await this.renderPetitsGrimauds(stage)
 | 
			
		||||
          break
 | 
			
		||||
        case "rosevie":
 | 
			
		||||
          await this.renderRosesDeLaVie(stage)
 | 
			
		||||
          break
 | 
			
		||||
        case "ageviril":
 | 
			
		||||
          await this.renderAgeViril(stage)
 | 
			
		||||
          break
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    console.log("Carac Bonus", this.caracBonus) 
 | 
			
		||||
    console.log("Competence Bonus", this.competenceBonus)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -152,16 +152,16 @@ export const TEDEUM_CONFIG = {
 | 
			
		||||
    ageviril: { label: "L'Age Viril", value: "ageviril", agemin: 17, agemax: 17, nbCompetences: 9, nbCaracteristiques: 2, hasQuestionnaire: false, hasMultiplier: true },
 | 
			
		||||
  },
 | 
			
		||||
  origineSociale: {
 | 
			
		||||
    noblesseepee: { label: "Noblesse d'épée", id: "noblesseepee", value: 1 },
 | 
			
		||||
    noblessecloche: { label: "Noblesse de cloche", id: "noblessecloche", value: 2 },
 | 
			
		||||
    hautenoblesse: { label: "Haute noblesse (Illégitime)", id: "hautenoblesse", value: 3 },
 | 
			
		||||
    hautebourgeoisie: { label: "Haute bourgeoisie", id: "hautebourgeoisie", value: 4 },
 | 
			
		||||
    petitebourgeoisie: { label: "Petite bourgeoisie (Marchands)", id: "petitebourgeoisie", value: 5 },
 | 
			
		||||
    artisan: { label: "Artisans", id: "artisan", value: 6 },
 | 
			
		||||
    laboureur: { label: "Laboureurs", id: "laboureur", value: 7 },
 | 
			
		||||
    domesticite: { label: "Domesticité", id: "domesticite", value: 8 },
 | 
			
		||||
    paysannerie: { label: "Paysannerie", id: "paysannerie", value: 9 },
 | 
			
		||||
    gueux: { label: "Gueux", id: "gueux", value: 10 },
 | 
			
		||||
    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 },
 | 
			
		||||
  },
 | 
			
		||||
  bonusMalus: [
 | 
			
		||||
    { value: "-2", label: "-2 niveaux"  },
 | 
			
		||||
 
 | 
			
		||||
@@ -43,8 +43,8 @@ export class TeDeumItemSheet extends ItemSheet {
 | 
			
		||||
      name: this.object.name,
 | 
			
		||||
      editable: this.isEditable,
 | 
			
		||||
      cssClass: this.isEditable ? "editable" : "locked",
 | 
			
		||||
      system: duplicate(this.object.system),
 | 
			
		||||
      config: duplicate(game.system.tedeum.config),
 | 
			
		||||
      system: foundry.utils.duplicate(this.object.system),
 | 
			
		||||
      config: foundry.utils.duplicate(game.system.tedeum.config),
 | 
			
		||||
      competences: TeDeumUtility.getCompetencesForDropDown(),
 | 
			
		||||
      limited: this.object.limited,
 | 
			
		||||
      options: this.options,
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,7 @@ import { TeDeumItemSheet } from "./items/tedeum-item-sheet.js";
 | 
			
		||||
 | 
			
		||||
import { TeDeumHotbar } from "./app/tedeum-hotbar.js"
 | 
			
		||||
import { TeDeumCombat } from "./app/tedeum-combat.js";
 | 
			
		||||
import { TeDeumCharacterCreator } from "./app/tedeum-character-creator.js"
 | 
			
		||||
 | 
			
		||||
import { TeDeumUtility } from "./common/tedeum-utility.js";
 | 
			
		||||
import { TEDEUM_CONFIG } from "./common/tedeum-config.js";
 | 
			
		||||
@@ -42,6 +43,7 @@ Hooks.once("init", async function () {
 | 
			
		||||
 | 
			
		||||
  game.system.tedeum = {
 | 
			
		||||
    config: TEDEUM_CONFIG,
 | 
			
		||||
    TeDeumCharacterCreator,
 | 
			
		||||
    TeDeumHotbar
 | 
			
		||||
  }
 | 
			
		||||
  console.log(`Initializing TeDeum RPG 2`);
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
MANIFEST-000010
 | 
			
		||||
MANIFEST-000030
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
2025/01/15-17:34:40.609765 7ffb04ff96c0 Recovering log #7
 | 
			
		||||
2025/01/15-17:34:40.619795 7ffb04ff96c0 Delete type=3 #4
 | 
			
		||||
2025/01/15-17:34:40.619857 7ffb04ff96c0 Delete type=0 #7
 | 
			
		||||
2025/01/15-17:42:01.193710 7ff867fff6c0 Level-0 table #13: started
 | 
			
		||||
2025/01/15-17:42:01.193747 7ff867fff6c0 Level-0 table #13: 0 bytes OK
 | 
			
		||||
2025/01/15-17:42:01.228667 7ff867fff6c0 Delete type=0 #11
 | 
			
		||||
2025/01/15-17:42:01.337145 7ff867fff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,7 @@
 | 
			
		||||
2025/01/15-17:29:57.885355 7ffb05ffb6c0 Recovering log #3
 | 
			
		||||
2025/01/15-17:29:57.887048 7ffb05ffb6c0 Level-0 table #5: started
 | 
			
		||||
2025/01/15-17:29:57.910934 7ffb05ffb6c0 Level-0 table #5: 30788 bytes OK
 | 
			
		||||
2025/01/15-17:29:57.966201 7ffb05ffb6c0 Delete type=0 #3
 | 
			
		||||
2025/01/15-17:29:57.966265 7ffb05ffb6c0 Delete type=3 #2
 | 
			
		||||
2025/01/15-17:32:30.276622 7ff867fff6c0 Level-0 table #8: started
 | 
			
		||||
2025/01/15-17:32:30.276665 7ff867fff6c0 Level-0 table #8: 0 bytes OK
 | 
			
		||||
2025/01/15-17:32:30.286057 7ff867fff6c0 Delete type=0 #6
 | 
			
		||||
2025/01/15-17:32:30.315172 7ff867fff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at '!items!wxIHkrq98eQ3cOvp' @ 29 : 1
 | 
			
		||||
2025/01/15-17:32:30.315180 7ff867fff6c0 Compacting 1@0 + 0@1 files
 | 
			
		||||
2025/01/15-17:32:30.320661 7ff867fff6c0 Generated table #9@0: 38 keys, 30788 bytes
 | 
			
		||||
2025/01/15-17:32:30.320689 7ff867fff6c0 Compacted 1@0 + 0@1 files => 30788 bytes
 | 
			
		||||
2025/01/15-17:32:30.329893 7ff867fff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
 | 
			
		||||
2025/01/15-17:32:30.329998 7ff867fff6c0 Delete type=2 #5
 | 
			
		||||
2025/01/15-17:32:30.361225 7ff867fff6c0 Manual compaction at level-0 from '!items!wxIHkrq98eQ3cOvp' @ 29 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1 +1 @@
 | 
			
		||||
MANIFEST-000010
 | 
			
		||||
MANIFEST-000030
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
2025/01/15-17:34:40.622625 7ffb067fc6c0 Recovering log #7
 | 
			
		||||
2025/01/15-17:34:40.632779 7ffb067fc6c0 Delete type=3 #4
 | 
			
		||||
2025/01/15-17:34:40.632875 7ffb067fc6c0 Delete type=0 #7
 | 
			
		||||
2025/01/15-17:42:01.117260 7ff867fff6c0 Level-0 table #13: started
 | 
			
		||||
2025/01/15-17:42:01.117299 7ff867fff6c0 Level-0 table #13: 0 bytes OK
 | 
			
		||||
2025/01/15-17:42:01.159899 7ff867fff6c0 Delete type=0 #11
 | 
			
		||||
2025/01/15-17:42:01.265850 7ff867fff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,7 @@
 | 
			
		||||
2025/01/15-17:29:57.968256 7ffb057fa6c0 Recovering log #3
 | 
			
		||||
2025/01/15-17:29:57.970893 7ffb057fa6c0 Level-0 table #5: started
 | 
			
		||||
2025/01/15-17:29:57.989884 7ffb057fa6c0 Level-0 table #5: 11964 bytes OK
 | 
			
		||||
2025/01/15-17:29:58.046836 7ffb057fa6c0 Delete type=0 #3
 | 
			
		||||
2025/01/15-17:29:58.046939 7ffb057fa6c0 Delete type=3 #2
 | 
			
		||||
2025/01/15-17:32:30.286138 7ff867fff6c0 Level-0 table #8: started
 | 
			
		||||
2025/01/15-17:32:30.286162 7ff867fff6c0 Level-0 table #8: 0 bytes OK
 | 
			
		||||
2025/01/15-17:32:30.295347 7ff867fff6c0 Delete type=0 #6
 | 
			
		||||
2025/01/15-17:32:30.330089 7ff867fff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at '!items!ufvhWG5V8pX0qrtR' @ 10 : 1
 | 
			
		||||
2025/01/15-17:32:30.330097 7ff867fff6c0 Compacting 1@0 + 0@1 files
 | 
			
		||||
2025/01/15-17:32:30.334867 7ff867fff6c0 Generated table #9@0: 29 keys, 11964 bytes
 | 
			
		||||
2025/01/15-17:32:30.334884 7ff867fff6c0 Compacted 1@0 + 0@1 files => 11964 bytes
 | 
			
		||||
2025/01/15-17:32:30.344295 7ff867fff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
 | 
			
		||||
2025/01/15-17:32:30.344413 7ff867fff6c0 Delete type=2 #5
 | 
			
		||||
2025/01/15-17:32:30.361236 7ff867fff6c0 Manual compaction at level-0 from '!items!ufvhWG5V8pX0qrtR' @ 10 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1 +1 @@
 | 
			
		||||
MANIFEST-000004
 | 
			
		||||
MANIFEST-000026
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,7 @@
 | 
			
		||||
2025/01/15-17:34:40.593521 7ffb05ffb6c0 Recovering log #3
 | 
			
		||||
2025/01/15-17:34:40.593673 7ffb05ffb6c0 Level-0 table #5: started
 | 
			
		||||
2025/01/15-17:34:40.597166 7ffb05ffb6c0 Level-0 table #5: 37215 bytes OK
 | 
			
		||||
2025/01/15-17:34:40.607180 7ffb05ffb6c0 Delete type=0 #3
 | 
			
		||||
2025/01/15-17:34:40.607249 7ffb05ffb6c0 Delete type=3 #2
 | 
			
		||||
2025/01/15-17:42:01.160074 7ff867fff6c0 Level-0 table #8: started
 | 
			
		||||
2025/01/15-17:42:01.160112 7ff867fff6c0 Level-0 table #8: 0 bytes OK
 | 
			
		||||
2025/01/15-17:42:01.193526 7ff867fff6c0 Delete type=0 #6
 | 
			
		||||
2025/01/15-17:42:01.265867 7ff867fff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at '!items!yx4k7lQHGcom99mk' @ 17 : 1
 | 
			
		||||
2025/01/15-17:42:01.265875 7ff867fff6c0 Compacting 1@0 + 0@1 files
 | 
			
		||||
2025/01/15-17:42:01.297825 7ff867fff6c0 Generated table #9@0: 114 keys, 37215 bytes
 | 
			
		||||
2025/01/15-17:42:01.297857 7ff867fff6c0 Compacted 1@0 + 0@1 files => 37215 bytes
 | 
			
		||||
2025/01/15-17:42:01.336855 7ff867fff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
 | 
			
		||||
2025/01/15-17:42:01.336997 7ff867fff6c0 Delete type=2 #5
 | 
			
		||||
2025/01/15-17:42:01.374211 7ff867fff6c0 Manual compaction at level-0 from '!items!yx4k7lQHGcom99mk' @ 17 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1,7 @@
 | 
			
		||||
2025/01/08-16:08:46.657 170c Delete type=3 #1
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/competences/MANIFEST-000026
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/competences/MANIFEST-000026
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1 +1 @@
 | 
			
		||||
MANIFEST-000010
 | 
			
		||||
MANIFEST-000032
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
2025/01/15-17:34:40.635494 7ffb057fa6c0 Recovering log #7
 | 
			
		||||
2025/01/15-17:34:40.646482 7ffb057fa6c0 Delete type=3 #4
 | 
			
		||||
2025/01/15-17:34:40.646535 7ffb057fa6c0 Delete type=0 #7
 | 
			
		||||
2025/01/15-17:42:01.337175 7ff867fff6c0 Level-0 table #13: started
 | 
			
		||||
2025/01/15-17:42:01.337205 7ff867fff6c0 Level-0 table #13: 0 bytes OK
 | 
			
		||||
2025/01/15-17:42:01.374065 7ff867fff6c0 Delete type=0 #11
 | 
			
		||||
2025/01/15-17:42:01.470509 7ff867fff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,16 +1,7 @@
 | 
			
		||||
2025/01/15-17:29:58.049386 7ffb067fc6c0 Recovering log #3
 | 
			
		||||
2025/01/15-17:29:58.059779 7ffb067fc6c0 Level-0 table #5: started
 | 
			
		||||
2025/01/15-17:29:58.080492 7ffb067fc6c0 Level-0 table #5: 241209 bytes OK
 | 
			
		||||
2025/01/15-17:29:58.141828 7ffb067fc6c0 Delete type=0 #3
 | 
			
		||||
2025/01/15-17:29:58.142221 7ffb067fc6c0 Delete type=3 #2
 | 
			
		||||
2025/01/15-17:32:30.361246 7ff867fff6c0 Level-0 table #8: started
 | 
			
		||||
2025/01/15-17:32:30.365947 7ff867fff6c0 Level-0 table #8: 780 bytes OK
 | 
			
		||||
2025/01/15-17:32:30.375249 7ff867fff6c0 Delete type=0 #6
 | 
			
		||||
2025/01/15-17:32:30.396999 7ff867fff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at '!items!zGlRtP7zSnkjuuue' @ 33 : 1
 | 
			
		||||
2025/01/15-17:32:30.397009 7ff867fff6c0 Compacting 2@0 + 0@1 files
 | 
			
		||||
2025/01/15-17:32:30.405563 7ff867fff6c0 Generated table #9@0: 71 keys, 241276 bytes
 | 
			
		||||
2025/01/15-17:32:30.405596 7ff867fff6c0 Compacted 2@0 + 0@1 files => 241276 bytes
 | 
			
		||||
2025/01/15-17:32:30.415254 7ff867fff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
 | 
			
		||||
2025/01/15-17:32:30.415355 7ff867fff6c0 Delete type=2 #5
 | 
			
		||||
2025/01/15-17:32:30.415490 7ff867fff6c0 Delete type=2 #8
 | 
			
		||||
2025/01/15-17:32:30.528069 7ff867fff6c0 Manual compaction at level-0 from '!items!zGlRtP7zSnkjuuue' @ 33 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/education/MANIFEST-000032
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/education/MANIFEST-000032
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1 +1 @@
 | 
			
		||||
MANIFEST-000010
 | 
			
		||||
MANIFEST-000030
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
2025/01/15-17:34:40.649400 7ffb05ffb6c0 Recovering log #7
 | 
			
		||||
2025/01/15-17:34:40.659735 7ffb05ffb6c0 Delete type=3 #4
 | 
			
		||||
2025/01/15-17:34:40.659803 7ffb05ffb6c0 Delete type=0 #7
 | 
			
		||||
2025/01/15-17:42:01.228806 7ff867fff6c0 Level-0 table #13: started
 | 
			
		||||
2025/01/15-17:42:01.228851 7ff867fff6c0 Level-0 table #13: 0 bytes OK
 | 
			
		||||
2025/01/15-17:42:01.265727 7ff867fff6c0 Delete type=0 #11
 | 
			
		||||
2025/01/15-17:42:01.337162 7ff867fff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,7 @@
 | 
			
		||||
2025/01/15-17:29:58.145656 7ffb04ff96c0 Recovering log #3
 | 
			
		||||
2025/01/15-17:29:58.146603 7ffb04ff96c0 Level-0 table #5: started
 | 
			
		||||
2025/01/15-17:29:58.162632 7ffb04ff96c0 Level-0 table #5: 19338 bytes OK
 | 
			
		||||
2025/01/15-17:29:58.221008 7ffb04ff96c0 Delete type=0 #3
 | 
			
		||||
2025/01/15-17:29:58.221091 7ffb04ff96c0 Delete type=3 #2
 | 
			
		||||
2025/01/15-17:32:30.375394 7ff867fff6c0 Level-0 table #8: started
 | 
			
		||||
2025/01/15-17:32:30.375418 7ff867fff6c0 Level-0 table #8: 0 bytes OK
 | 
			
		||||
2025/01/15-17:32:30.385765 7ff867fff6c0 Delete type=0 #6
 | 
			
		||||
2025/01/15-17:32:30.495006 7ff867fff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at '!items!zUYIVOuFpRur9aAR' @ 40 : 1
 | 
			
		||||
2025/01/15-17:32:30.495020 7ff867fff6c0 Compacting 1@0 + 0@1 files
 | 
			
		||||
2025/01/15-17:32:30.500398 7ff867fff6c0 Generated table #9@0: 49 keys, 19338 bytes
 | 
			
		||||
2025/01/15-17:32:30.500427 7ff867fff6c0 Compacted 1@0 + 0@1 files => 19338 bytes
 | 
			
		||||
2025/01/15-17:32:30.513125 7ff867fff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
 | 
			
		||||
2025/01/15-17:32:30.513239 7ff867fff6c0 Delete type=2 #5
 | 
			
		||||
2025/01/15-17:32:30.545252 7ff867fff6c0 Manual compaction at level-0 from '!items!zUYIVOuFpRur9aAR' @ 40 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1 +1 @@
 | 
			
		||||
MANIFEST-000010
 | 
			
		||||
MANIFEST-000030
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
2025/01/15-17:34:40.661982 7ffb04ff96c0 Recovering log #7
 | 
			
		||||
2025/01/15-17:34:40.671790 7ffb04ff96c0 Delete type=3 #4
 | 
			
		||||
2025/01/15-17:34:40.671839 7ffb04ff96c0 Delete type=0 #7
 | 
			
		||||
2025/01/15-17:42:01.374225 7ff867fff6c0 Level-0 table #13: started
 | 
			
		||||
2025/01/15-17:42:01.374255 7ff867fff6c0 Level-0 table #13: 0 bytes OK
 | 
			
		||||
2025/01/15-17:42:01.406768 7ff867fff6c0 Delete type=0 #11
 | 
			
		||||
2025/01/15-17:42:01.520814 7ff867fff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,7 @@
 | 
			
		||||
2025/01/15-17:29:58.223477 7ffb05ffb6c0 Recovering log #3
 | 
			
		||||
2025/01/15-17:29:58.225454 7ffb05ffb6c0 Level-0 table #5: started
 | 
			
		||||
2025/01/15-17:29:58.238877 7ffb05ffb6c0 Level-0 table #5: 11815 bytes OK
 | 
			
		||||
2025/01/15-17:29:58.300226 7ffb05ffb6c0 Delete type=0 #3
 | 
			
		||||
2025/01/15-17:29:58.300332 7ffb05ffb6c0 Delete type=3 #2
 | 
			
		||||
2025/01/15-17:32:30.385905 7ff867fff6c0 Level-0 table #8: started
 | 
			
		||||
2025/01/15-17:32:30.385950 7ff867fff6c0 Level-0 table #8: 0 bytes OK
 | 
			
		||||
2025/01/15-17:32:30.396858 7ff867fff6c0 Delete type=0 #6
 | 
			
		||||
2025/01/15-17:32:30.513375 7ff867fff6c0 Manual compaction at level-0 from '!items!1icaxIywAwDXQcMz' @ 72057594037927935 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at '!items!ysGehYm1VkMWrI22' @ 14 : 1
 | 
			
		||||
2025/01/15-17:32:30.513386 7ff867fff6c0 Compacting 1@0 + 0@1 files
 | 
			
		||||
2025/01/15-17:32:30.518353 7ff867fff6c0 Generated table #9@0: 17 keys, 11815 bytes
 | 
			
		||||
2025/01/15-17:32:30.518392 7ff867fff6c0 Compacted 1@0 + 0@1 files => 11815 bytes
 | 
			
		||||
2025/01/15-17:32:30.527841 7ff867fff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
 | 
			
		||||
2025/01/15-17:32:30.527951 7ff867fff6c0 Delete type=2 #5
 | 
			
		||||
2025/01/15-17:32:30.545267 7ff867fff6c0 Manual compaction at level-0 from '!items!ysGehYm1VkMWrI22' @ 14 : 1 .. '!items!ysGehYm1VkMWrI22' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1 +1 @@
 | 
			
		||||
MANIFEST-000010
 | 
			
		||||
MANIFEST-000030
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
2025/01/15-17:34:40.673583 7ffb067fc6c0 Recovering log #7
 | 
			
		||||
2025/01/15-17:34:40.683862 7ffb067fc6c0 Delete type=3 #4
 | 
			
		||||
2025/01/15-17:34:40.683934 7ffb067fc6c0 Delete type=0 #7
 | 
			
		||||
2025/01/15-17:42:01.407010 7ff867fff6c0 Level-0 table #13: started
 | 
			
		||||
2025/01/15-17:42:01.407048 7ff867fff6c0 Level-0 table #13: 0 bytes OK
 | 
			
		||||
2025/01/15-17:42:01.470333 7ff867fff6c0 Delete type=0 #11
 | 
			
		||||
2025/01/15-17:42:01.520834 7ff867fff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,7 @@
 | 
			
		||||
2025/01/15-17:29:58.302880 7ffb057fa6c0 Recovering log #3
 | 
			
		||||
2025/01/15-17:29:58.309780 7ffb057fa6c0 Level-0 table #5: started
 | 
			
		||||
2025/01/15-17:29:58.328372 7ffb057fa6c0 Level-0 table #5: 20664 bytes OK
 | 
			
		||||
2025/01/15-17:29:58.373657 7ffb057fa6c0 Delete type=0 #3
 | 
			
		||||
2025/01/15-17:29:58.373743 7ffb057fa6c0 Delete type=3 #2
 | 
			
		||||
2025/01/15-17:32:30.415552 7ff867fff6c0 Level-0 table #8: started
 | 
			
		||||
2025/01/15-17:32:30.415576 7ff867fff6c0 Level-0 table #8: 0 bytes OK
 | 
			
		||||
2025/01/15-17:32:30.494793 7ff867fff6c0 Delete type=0 #6
 | 
			
		||||
2025/01/15-17:32:30.528088 7ff867fff6c0 Manual compaction at level-0 from '!items!1bAL2MQVpVBd0c5Z' @ 72057594037927935 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at '!items!zs67k4sxCid6oTK3' @ 35 : 1
 | 
			
		||||
2025/01/15-17:32:30.528096 7ff867fff6c0 Compacting 1@0 + 0@1 files
 | 
			
		||||
2025/01/15-17:32:30.533808 7ff867fff6c0 Generated table #9@0: 36 keys, 20664 bytes
 | 
			
		||||
2025/01/15-17:32:30.533827 7ff867fff6c0 Compacted 1@0 + 0@1 files => 20664 bytes
 | 
			
		||||
2025/01/15-17:32:30.545002 7ff867fff6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
 | 
			
		||||
2025/01/15-17:32:30.545121 7ff867fff6c0 Delete type=2 #5
 | 
			
		||||
2025/01/15-17:32:30.554996 7ff867fff6c0 Manual compaction at level-0 from '!items!zs67k4sxCid6oTK3' @ 35 : 1 .. '!items!zs67k4sxCid6oTK3' @ 0 : 0; will stop at (end)
 | 
			
		||||
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)
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										23
									
								
								templates/dialogs/character-creator-origine.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								templates/dialogs/character-creator-origine.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<div class="fvtt-te-deum-character-creator">
 | 
			
		||||
 | 
			
		||||
    <h2>{{title}}</h2>
 | 
			
		||||
 | 
			
		||||
    <div class="form-group">
 | 
			
		||||
      <select name="sexe">
 | 
			
		||||
        {{selectOptions sexeChoice selected="hommme"}}
 | 
			
		||||
      </select>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="form-group">
 | 
			
		||||
      <select name="religion">
 | 
			
		||||
        {{selectOptions religionChoice selected="catholique" }}
 | 
			
		||||
      </select>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="form-group">
 | 
			
		||||
      <select name="origineSociale">
 | 
			
		||||
        {{selectOptions origineChoice selected="noblesseepee" valueAttr="id"}}
 | 
			
		||||
      </select>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
							
								
								
									
										18
									
								
								templates/dialogs/character-creator-select-carac.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								templates/dialogs/character-creator-select-carac.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
<div class="fvtt-te-deum-character-creator">
 | 
			
		||||
 | 
			
		||||
    <h2>{{title}}</h2>
 | 
			
		||||
    <div class="form-group">
 | 
			
		||||
      <select name="carac">
 | 
			
		||||
        {{selectOptions caracList valueAttr="id" labelAttr="label"}}
 | 
			
		||||
      </select>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
  {{#each competences as |comp idx|}}
 | 
			
		||||
    {{#if comp.valid}}
 | 
			
		||||
    <div class="form-group">
 | 
			
		||||
      <label>Compétence +1 : {{comp.compName}}</label>
 | 
			
		||||
    </div>
 | 
			
		||||
    {{/if}}
 | 
			
		||||
  {{/each}}
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
							
								
								
									
										12
									
								
								templates/dialogs/character-creator-select-questions.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								templates/dialogs/character-creator-select-questions.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
<div class="fvtt-te-deum-character-creator">
 | 
			
		||||
 | 
			
		||||
    <h2>{{title}}</h2>
 | 
			
		||||
    <div class="form-group">
 | 
			
		||||
      {{question}}    
 | 
			
		||||
    </div>
 | 
			
		||||
    
 | 
			
		||||
    <div class="flexcol">
 | 
			
		||||
      {{radioBoxes 'responseKey' responsesRadio checked="reponse1" valueAttr="id" labelAttr="label"}}
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
							
								
								
									
										10
									
								
								templates/dialogs/character-creator-select-stage-name.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								templates/dialogs/character-creator-select-stage-name.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
<div class="fvtt-te-deum-character-creator">
 | 
			
		||||
 | 
			
		||||
    <h2>{{title}}</h2>
 | 
			
		||||
    <div class="form-group">
 | 
			
		||||
      <select name="selectedItem">
 | 
			
		||||
        {{selectOptions choices valueAttr="id" labelAttr="name"}}
 | 
			
		||||
      </select>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
		Reference in New Issue
	
	Block a user