Compare commits
	
		
			22 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 7994aa7db4 | |||
| 5176b4ce87 | |||
| 3d6f195fc2 | |||
| 3693d68c24 | |||
| 16ccd2f3e1 | |||
| 631eb280ca | |||
| 88ca98945f | |||
| edfb2105d3 | |||
| 84cc59c57d | |||
| e9c0fbd818 | |||
| aaabb7ed75 | |||
| fee7a3a9fb | |||
| 31517030f6 | |||
| c5cbf2a6d1 | |||
| a30f813d94 | |||
| 090f6be601 | |||
| 60db1f65e4 | |||
| d532765d2b | |||
| b6016742ae | |||
| 761f95d6d9 | |||
| c24f4fe502 | |||
| caedcf5e21 | 
| @@ -27,7 +27,7 @@ jobs: | ||||
|       env: | ||||
|         version: ${{steps.get_version.outputs.version-without-v}} | ||||
|         url: https://www.uberwald.me/gitea/${{gitea.repository}} | ||||
|         manifest: https://www.uberwald.me/gitea/public/${{gitea.repository}}/releases/download/latest/system.json | ||||
|         manifest: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/latest/system.json | ||||
|         download: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-te-deum-${{github.event.release.tag_name}}.zip | ||||
|      | ||||
|     # Create a zip file with all files required by the module to add to the release | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| # Système Foundry pour Te Deum pour un massacre (French RPG, Open Sesam Games, Official) | ||||
| # Système Foundry pour Te Deum pour un Massacre (French RPG, Open Sesame Games, Official) | ||||
|  | ||||
| This is a base game system with functionnal character sheets for the game Te Deum pour un massacre. | ||||
|  | ||||
|   | ||||
							
								
								
									
										29
									
								
								changelog.md
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								changelog.md
									
									
									
									
									
								
							| @@ -0,0 +1,29 @@ | ||||
| # 13.0.0 | ||||
|  | ||||
| - Support de Foundry v13 | ||||
|  | ||||
| # 12.0.23 | ||||
|  | ||||
| - Correction sur les jets réussie en tir | ||||
| - Correction sur le dés négatif pour les échecs critiques | ||||
| - Correction sur l'XP et édition de l'XP en mode MJ | ||||
|  | ||||
| # 12.0.22 | ||||
|  | ||||
| - Correction pour les armes d'hast | ||||
| - Correction sur la zone libre d'équipement | ||||
| - Bouton + pour créer un équipement à nouveau opérationnel | ||||
| - Modification de la gestion des jets en combat, avec gestion opposition ou degats immédiats | ||||
| - Gestion du genre dans la création de personnage | ||||
|  | ||||
| # 12.0.21 | ||||
|  | ||||
| - Creation de PNJ OK | ||||
|  | ||||
| # 12.0.20 | ||||
|  | ||||
| - Corrections sur la création de perso | ||||
|  | ||||
| # 12.0.19 | ||||
|  | ||||
| - Initial release ! | ||||
							
								
								
									
										
											BIN
										
									
								
								images/icons/appliquer-degats.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								images/icons/appliquer-degats.webp
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 31 KiB | 
| @@ -6,7 +6,7 @@ | ||||
| import { TeDeumUtility } from "../common/tedeum-utility.js"; | ||||
|  | ||||
| /* -------------------------------------------- */ | ||||
| export class TeDeumActorPJSheet extends ActorSheet { | ||||
| export class TeDeumActorPJSheet extends foundry.appv1.sheets.ActorSheet { | ||||
|  | ||||
|   /** @override */ | ||||
|   static get defaultOptions() { | ||||
| @@ -42,6 +42,7 @@ export class TeDeumActorPJSheet extends ActorSheet { | ||||
|       providence: this.actor.prepareProvidence(), | ||||
|       arbreCompetences: this.actor.prepareArbreCompetences(), | ||||
|       equipements: this.actor.getEquipements(), | ||||
|       simples: this.actor.getSimples(), | ||||
|       armures: this.actor.getArmures(), | ||||
|       graces: this.actor.getGraces(), | ||||
|       blessures: this.actor.getBlessures(), | ||||
| @@ -55,9 +56,10 @@ export class TeDeumActorPJSheet extends ActorSheet { | ||||
|       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 }), | ||||
|       histoire: await TextEditor.enrichHTML(this.object.system.histoire, { async: true }), | ||||
|       description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }), | ||||
|       equipmentfree: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.equipmentfree, { async: true }), | ||||
|       notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }), | ||||
|       histoire: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.histoire, { async: true }), | ||||
|       options: this.options, | ||||
|       owner: this.document.isOwner, | ||||
|       editScore: this.options.editScore, | ||||
| @@ -77,10 +79,10 @@ export class TeDeumActorPJSheet extends ActorSheet { | ||||
|  | ||||
|     // Everything below here is only needed if the sheet is editable | ||||
|     if (!this.options.editable) return; | ||||
|      | ||||
|  | ||||
|     html.bind("keydown", function(e) { // Ignore Enter in actores sheet | ||||
|       if (e.keyCode === 13) return false; | ||||
|     });   | ||||
|     }); | ||||
|  | ||||
|     // Update Inventory Item | ||||
|     html.find('.item-edit').click(ev => { | ||||
| @@ -96,16 +98,21 @@ export class TeDeumActorPJSheet extends ActorSheet { | ||||
|     }) | ||||
|     html.find('.item-add').click(ev => { | ||||
|       let dataType = $(ev.currentTarget).data("type") | ||||
|       this.actor.createEmbeddedDocuments('Item', [{ name: "NewItem", type: dataType }], { renderSheet: true }) | ||||
|       this.actor.createEmbeddedDocuments('Item', [{ name: "Nouveau " + dataType, type: dataType }], { renderSheet: true }) | ||||
|     }) | ||||
|          | ||||
|     html.find('.competence-add').click(ev => { | ||||
|       let dataType = $(ev.currentTarget).data("type") | ||||
|       let caracKey = $(ev.currentTarget).data("carac-key") | ||||
|       this.actor.createEmbeddedDocuments('Item', [{ name: "Nouvelle " + dataType, type: dataType, system: {caracteristique: caracKey} }], { renderSheet: true }) | ||||
|     }) | ||||
|  | ||||
|     html.find('.subactor-edit').click(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".item"); | ||||
|       let actorId = li.data("actor-id"); | ||||
|       let actor = game.actors.get( actorId ); | ||||
|       actor.sheet.render(true); | ||||
|     }); | ||||
|      | ||||
|  | ||||
|     html.find('.subactor-delete').click(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".item"); | ||||
|       let actorId = li.data("actor-id"); | ||||
| @@ -123,7 +130,7 @@ export class TeDeumActorPJSheet extends ActorSheet { | ||||
|     html.find('.roll-competence').click((event) => { | ||||
|       let compId = $(event.currentTarget).data("comp-id") | ||||
|       this.actor.rollCompetence(compId) | ||||
|     });     | ||||
|     }); | ||||
|     html.find('.roll-arme').click((event) => { | ||||
|       const armeId = $(event.currentTarget).data("arme-id") | ||||
|       this.actor.rollArme(armeId) | ||||
| @@ -132,24 +139,24 @@ export class TeDeumActorPJSheet extends ActorSheet { | ||||
|       const armeId = $(event.currentTarget).data("arme-id") | ||||
|       this.actor.rollDegatsArme(armeId) | ||||
|     }); | ||||
|      | ||||
|      | ||||
|  | ||||
|  | ||||
|     html.find('.lock-unlock-sheet').click((event) => { | ||||
|       this.options.editScore = !this.options.editScore; | ||||
|       this.render(true); | ||||
|     });     | ||||
|     }); | ||||
|     html.find('.item-equip').click(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".item"); | ||||
|       this.actor.equipItem( li.data("item-id") ); | ||||
|       this.render(true);       | ||||
|       this.render(true); | ||||
|     }); | ||||
|     html.find('.update-field').change(ev => { | ||||
|       const fieldName = $(ev.currentTarget).data("field-name"); | ||||
|       let value = Number(ev.currentTarget.value); | ||||
|       this.actor.update( { [`${fieldName}`]: value } ); | ||||
|     });     | ||||
|     }); | ||||
|   } | ||||
|    | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   /** @override */ | ||||
|   setPosition(options = {}) { | ||||
|   | ||||
| @@ -14,8 +14,8 @@ export class TeDeumActor extends Actor { | ||||
|   /** | ||||
|    * Override the create() function to provide additional SoS functionality. | ||||
|    * | ||||
|    * This overrided create() function adds initial items  | ||||
|    * Namely: Basic skills, money,  | ||||
|    * This overrided create() function adds initial items | ||||
|    * Namely: Basic skills, money, | ||||
|    * | ||||
|    * @param {Object} data        Barebones actor data which this function adds onto. | ||||
|    * @param {Object} options     (Unused) Additional options which customize the creation workflow. | ||||
| @@ -34,7 +34,7 @@ export class TeDeumActor extends Actor { | ||||
|       return actor; | ||||
|     } | ||||
|  | ||||
|     if (data.type == 'pj') { | ||||
|     if (data.type == 'pj' ||  data.type == 'pnj') { | ||||
|       const skills = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences") | ||||
|       data.items = data.items || [] | ||||
|       for (let skill of skills) { | ||||
| @@ -65,6 +65,17 @@ export class TeDeumActor extends Actor { | ||||
|     super._preUpdate(changed, options, user); | ||||
|   } | ||||
|  | ||||
|   getCompetenceScore(compName) { | ||||
|     let competence = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == compName.toLowerCase()) | ||||
|     if (competence) { | ||||
|       if (competence.system.isBase) { | ||||
|         return this.system.caracteristiques[competence.system.caracteristique].value | ||||
|       } | ||||
|       return competence.system.score | ||||
|     } | ||||
|     return 0 | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   _onUpdate(changed, options, userId) { | ||||
|     let updates = [] | ||||
| @@ -119,8 +130,10 @@ export class TeDeumActor extends Actor { | ||||
|     if (updates.length > 0) { | ||||
|       this.updateEmbeddedDocuments('Item', updates) | ||||
|     } | ||||
|  | ||||
|     super._onUpdate(changed, options, userId); | ||||
|   } | ||||
|    | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async _preCreate(data, options, user) { | ||||
|     await super._preCreate(data, options, user); | ||||
| @@ -190,6 +203,11 @@ export class TeDeumActor extends Actor { | ||||
|     TeDeumUtility.sortArrayObjectsByName(comp) | ||||
|     return comp; | ||||
|   } | ||||
|   getSimples() { | ||||
|     let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'simple') || []) | ||||
|     TeDeumUtility.sortArrayObjectsByName(comp) | ||||
|     return comp; | ||||
|   } | ||||
|   getArmures() { | ||||
|     let comp = foundry.utils.duplicate(this.items.filter(item => item.type == 'armure') || []) | ||||
|     TeDeumUtility.sortArrayObjectsByName(comp) | ||||
| @@ -267,7 +285,7 @@ export class TeDeumActor extends Actor { | ||||
|       for (let bId in game.system.tedeum.config.blessures) { | ||||
|         let blessure = game.system.tedeum.config.blessures[bId] | ||||
|         if (diff >= blessure.degatsMin && diff <= blessure.degatsMax) { | ||||
|           // Create a new blessure object  | ||||
|           // Create a new blessure object | ||||
|           let blessureObj = { | ||||
|             name: blessure.label, | ||||
|             type: "blessure", | ||||
| @@ -295,7 +313,11 @@ export class TeDeumActor extends Actor { | ||||
|     c.key = key | ||||
|     c.name = game.system.tedeum.config.caracteristiques[key].label | ||||
|     c.generalqualite = game.system.tedeum.config.descriptionValeur[c.value].qualite | ||||
|     c.qualite = game.system.tedeum.config.descriptionValeur[c.value][key] | ||||
|     if (this.system.genre.toLowerCase() == "homme") { | ||||
|       c.qualite = game.system.tedeum.config.descriptionValeur[c.value][key] | ||||
|     } else { | ||||
|       c.qualite = game.system.tedeum.config.descriptionValeurFemme[c.value][key] | ||||
|     } | ||||
|     c.dice = game.system.tedeum.config.descriptionValeur[c.value].dice | ||||
|     c.negativeDice = game.system.tedeum.config.descriptionValeur[c.value].negativeDice | ||||
|   } | ||||
| @@ -314,7 +336,11 @@ export class TeDeumActor extends Actor { | ||||
|   prepareProvidence() { | ||||
|     let providence = foundry.utils.deepClone(this.system.providence) | ||||
|     providence.name = "Providence" | ||||
|     providence.qualite = game.system.tedeum.config.providence[providence.value].labelM | ||||
|     if (this.system.genre.toLowerCase() == "homme") { | ||||
|       providence.qualite = game.system.tedeum.config.providence[providence.value].labelM | ||||
|     } else { | ||||
|       providence.qualite = game.system.tedeum.config.providence[providence.value].labelF | ||||
|     } | ||||
|     providence.dice = game.system.tedeum.config.providence[providence.value].diceValue | ||||
|     providence.description = "La Providence représente la Volonté Divine à l'œuvre pour guider ou sauver un être humain. Les PJ montent dans l’échelle de la Providence en menant à bien leurs missions et en se montrant vertueux. Les points de Providence peuvent servir à augmenter temporairement une caractéris- tique, à modifier la gravité d'une blessure, et à résister au vieillissement. Chaque person- nage commence avec un score initial de 1 en Providence (au niveau Pauvre pécheur)." | ||||
|     return providence | ||||
| @@ -352,11 +378,13 @@ export class TeDeumActor extends Actor { | ||||
|     providence.value = Math.min(Math.max(providence.value + value, 0), 6) | ||||
|     this.update({ "system.providence": providence }) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   modifyXP(key, value) { | ||||
|   async modifyXP(key, value) { | ||||
|     let xp = this.system.caracteristiques[key].experience | ||||
|     xp = Math.max(xp + value, 0) | ||||
|     this.update({ [`system.caracteristiques.${key}.experience`]: xp }) | ||||
|     await this.update({ [`system.caracteristiques.${key}.experience`]: xp }) | ||||
|     this.sheet?.render(true) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
| @@ -570,6 +598,7 @@ export class TeDeumActor extends Actor { | ||||
|     let rollData = this.getCommonCompetence(compId) | ||||
|     rollData.mode = "competence" | ||||
|     rollData.title = rollData.competence.name | ||||
|     rollData.compScore = rollData.competence.system.isBase ? this.system.caracteristiques[rollData.competence.system.caracteristique].value : rollData.competence.system.score | ||||
|     this.startRoll(rollData).catch("Error on startRoll") | ||||
|   } | ||||
|  | ||||
| @@ -622,7 +651,8 @@ export class TeDeumActor extends Actor { | ||||
|  | ||||
|       // Setup competence + carac | ||||
|       if (!compName) { | ||||
|         compName = weapon.system.competence | ||||
|         let compIdx = weapon.system.competence | ||||
|         compName = game.system.tedeum.config.armeCompetences[compIdx]?.label | ||||
|       } | ||||
|       let competence = this.items.find(item => item.type == "competence" && item.name.toLowerCase() == compName.toLowerCase()) | ||||
|       if (competence) { | ||||
|   | ||||
| @@ -6,13 +6,14 @@ export class TeDeumCharacterCreator { | ||||
|   async init() { | ||||
|     this.stages = {} | ||||
|     this.currentStage = "origineSociale" | ||||
|     this.sex = undefined | ||||
|     this.sexe = undefined | ||||
|     this.origineSociale = undefined | ||||
|     this.religion = undefined | ||||
|     this.caracBonus = {} | ||||
|     this.competenceBonus = {} | ||||
|     this.suiviReponses = [] | ||||
|     this.competences = TeDeumUtility.getCompetencesForDropDown() | ||||
|     this.choiceSummary = {} | ||||
|  | ||||
|     for (let k in game.system.tedeum.config.caracteristiques) { | ||||
|       this.caracBonus[k] = { value: 0 } | ||||
| @@ -39,6 +40,7 @@ export class TeDeumCharacterCreator { | ||||
|     } else { | ||||
|       this.competenceBonus[compName].value += 1 | ||||
|     } | ||||
|     this.choiceSummary[this.currentStage].competences[compName] = 1 | ||||
|   } | ||||
|  | ||||
|   /*--------------------------------------------*/ | ||||
| @@ -69,7 +71,7 @@ export class TeDeumCharacterCreator { | ||||
|  | ||||
|   /*--------------------------------------------*/ | ||||
|   async askStageName(context) { | ||||
|     const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-stage-name.hbs", context) | ||||
|     const content = await foundry.applications.handlebars.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"], | ||||
| @@ -116,6 +118,7 @@ export class TeDeumCharacterCreator { | ||||
|   /*--------------------------------------------*/ | ||||
|   async askQuestionnaire(stage, context) { | ||||
|     context.subtitle = "Questionnaire" | ||||
|     this.choiceSummary[this.currentStage].questionnaire = {} | ||||
|  | ||||
|     for (let key in stage.system.questionnaire) { | ||||
|       let question = stage.system.questionnaire[key] | ||||
| @@ -127,7 +130,7 @@ export class TeDeumCharacterCreator { | ||||
|       context.competences = {} | ||||
|       context.responseKey = "reponse1" // By default | ||||
|  | ||||
|       const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-questions.hbs", context) | ||||
|       const content = await foundry.applications.handlebars.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"], | ||||
| @@ -156,7 +159,7 @@ export class TeDeumCharacterCreator { | ||||
|             // Get the responseKey data | ||||
|             let responseKey = $(event.target).data("response-key") | ||||
|             let compName = event.target.value | ||||
|             console.log("Questionnaire Change", responseKey, compName)   | ||||
|             console.log("Questionnaire Change", responseKey, compName) | ||||
|             context.competences[responseKey] = compName.toLowerCase() | ||||
|           }) | ||||
|         } | ||||
| @@ -170,13 +173,14 @@ export class TeDeumCharacterCreator { | ||||
|       let compName = context.competences[context.responseKey] || selectedResponse.compName | ||||
|       this.increaseCompetence(compName) | ||||
|  | ||||
|       this.suiviReponses.push({ etape: stage.name, question: question.question, reponse: selectedResponse.reponse, compName: compName }) | ||||
|       this.suiviReponses.push({ key: this.currentStage, etape: stage.name, question: question.question, reponse: selectedResponse.reponse, compName: compName }) | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /*------------- -------------------------------*/ | ||||
|   async askCompetences(stage, context) { | ||||
|     context.subtitle = "Choix des Compétences" | ||||
|     this.choiceSummary[this.currentStage].competences = {} | ||||
|  | ||||
|     context.fixedCompetences = {} | ||||
|     context.selectCompetences = {} | ||||
| @@ -192,7 +196,7 @@ export class TeDeumCharacterCreator { | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-competences.hbs", context) | ||||
|     const content = await foundry.applications.handlebars.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"], | ||||
| @@ -236,7 +240,7 @@ export class TeDeumCharacterCreator { | ||||
|           } | ||||
|         } | ||||
|  | ||||
|         const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-competences.hbs", context) | ||||
|         const content = await foundry.applications.handlebars.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"], | ||||
| @@ -273,6 +277,10 @@ export class TeDeumCharacterCreator { | ||||
|   /*------------- -------------------------------*/ | ||||
|   async askCarac(stage, context) { | ||||
|     context.subtitle = "Choix des Caractéristiques" | ||||
|     this.choiceSummary[this.currentStage] = { | ||||
|       caracBonus : {}, | ||||
|       competences : {} | ||||
|     } | ||||
|  | ||||
|     let selected = [] | ||||
|     for (let i = 0; i < stage.system.nbChoixCarac; i++) { | ||||
| @@ -283,7 +291,7 @@ export class TeDeumCharacterCreator { | ||||
|         context.caracList.push(game.system.tedeum.config.caracteristiques[carac.caracId]) | ||||
|       } | ||||
|  | ||||
|       const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-select-carac.hbs", context) | ||||
|       const content = await foundry.applications.handlebars.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"], | ||||
| @@ -312,6 +320,7 @@ export class TeDeumCharacterCreator { | ||||
|       } | ||||
|       this.caracBonus[choiceResult.carac].value += 1 | ||||
|       selected.push(choiceResult.carac) | ||||
|       this.choiceSummary[this.currentStage].caracBonus[choiceResult.carac] = 1 | ||||
|     } | ||||
|   } | ||||
|  | ||||
| @@ -325,7 +334,7 @@ export class TeDeumCharacterCreator { | ||||
|       origineChoice: game.system.tedeum.config.origineSociale | ||||
|     } | ||||
|  | ||||
|     const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-origine.hbs", context) | ||||
|     const content = await foundry.applications.handlebars.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 }, | ||||
| @@ -360,6 +369,12 @@ export class TeDeumCharacterCreator { | ||||
|     for (let key in this.origineSociale.caracteristiques) { | ||||
|       this.caracBonus[key].value += this.origineSociale.caracteristiques[key] | ||||
|     } | ||||
|     this.choiceSummary['origineSociale'] = { | ||||
|       sexe: this.sexe, | ||||
|       religion: this.religion, | ||||
|       origineSociale: this.origineSociale.label, | ||||
|       caracBonus: this.caracBonus, | ||||
|     } | ||||
|     this.currentStage = "pouponniere" | ||||
|  | ||||
|   } | ||||
| @@ -374,6 +389,7 @@ export class TeDeumCharacterCreator { | ||||
|       title: "Création de personnage - La Pouponnière", | ||||
|       subtitle: "Choix de la Pouponnière", | ||||
|       label: "Valider le choix de la Pouponnière", | ||||
|       hasGenre: false, | ||||
|       choices: pouponniereItems, | ||||
|       caracBonus: this.caracBonus, | ||||
|       competenceBonus: this.competenceBonus | ||||
| @@ -387,6 +403,7 @@ export class TeDeumCharacterCreator { | ||||
|     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); | ||||
|     this.choiceSummary['pouponniere'] = {} | ||||
|  | ||||
|     context.label = "Valider l'augmentation de caracteristique" | ||||
|     await this.askCarac(this.pouponniere, context) | ||||
| @@ -403,11 +420,12 @@ export class TeDeumCharacterCreator { | ||||
|   /*--------------------------------------------*/ | ||||
|   async renderPetitsGrimauds(stage) { | ||||
|     // Filter available pouponniere from origineSociale | ||||
|     let grimaudsItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible) | ||||
|     let grimaudsItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible && (item.system.genre === this.sexe || item.system.genre === "Mixte")) | ||||
|  | ||||
|     let context = { | ||||
|       title: "Les Petits Grimauds", | ||||
|       label: "Valider le choix des Petits Grimauds", | ||||
|       hasGenre: true, | ||||
|       choices: grimaudsItems, | ||||
|       caracBonus: this.caracBonus, | ||||
|       competenceBonus: this.competenceBonus | ||||
| @@ -437,12 +455,13 @@ export class TeDeumCharacterCreator { | ||||
|   /*--------------------------------------------*/ | ||||
|   async renderRosesDeLaVie(stage) { | ||||
|     // Filter available pouponniere from origineSociale | ||||
|     let rosesItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible) | ||||
|     let rosesItems = stage.items.filter(item => item.system.accessible[this.origineSociale.id].isaccessible && (item.system.genre === this.sexe || item.system.genre === "Mixte")) | ||||
|  | ||||
|     let context = { | ||||
|       title: "Création de personnage - Les Roses de la Vie", | ||||
|       label: "Valider le choix des Roses de la Vie", | ||||
|       choices: rosesItems, | ||||
|       hasGenre: true, | ||||
|       caracBonus: this.caracBonus, | ||||
|       competenceBonus: this.competenceBonus | ||||
|  | ||||
| @@ -488,6 +507,7 @@ export class TeDeumCharacterCreator { | ||||
|       title: "Création de personnage - L'Age Viril", | ||||
|       label: "Valider le choix de l'Age Viril", | ||||
|       choices: ageVirilItems, | ||||
|       hasGenre: false, | ||||
|       caracBonus: this.caracBonus, | ||||
|       competenceBonus: this.competenceBonus | ||||
|     } | ||||
| @@ -541,7 +561,7 @@ export class TeDeumCharacterCreator { | ||||
|     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.caracteristiques.${key}.value`] = Number(this.caracBonus[key].value)+1 | ||||
|     } | ||||
|     updates['system.genre'] = this.sexe | ||||
|     updates['system.religion'] = TeDeumUtility.upperFirst(this.religion) | ||||
| @@ -549,7 +569,7 @@ export class TeDeumCharacterCreator { | ||||
|     updates['system.equipmentfree'] = this.ageViril.system.trousseau | ||||
|     actor.update( updates); | ||||
|  | ||||
|     // Process competences : increase know skills  | ||||
|     // Process competences : increase know skills | ||||
|     let updateComp = [] | ||||
|     let toAdd = [] | ||||
|     for (let compName in this.competenceBonus) { | ||||
| @@ -558,13 +578,13 @@ export class TeDeumCharacterCreator { | ||||
|         updateComp.push({ _id: comp._id, "system.score": this.competenceBonus[compName].value }) | ||||
|       } else { | ||||
|         toAdd.push( compName) | ||||
|       }       | ||||
|       } | ||||
|     } | ||||
|     actor.updateEmbeddedDocuments("Item", updateComp) | ||||
|      | ||||
|     // Process adding skills  | ||||
|  | ||||
|     // Process adding skills | ||||
|     let compendiumSkill = TeDeumUtility.getCompetences() | ||||
|     let compToAdd = [ this.pouponniere, this.grimauds, this.roses, this.ageViril ]     | ||||
|     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 | ||||
| @@ -577,14 +597,50 @@ export class TeDeumCharacterCreator { | ||||
|     await actor.update({ [`system.fortune.${this.origineSociale.cagnotteUnit}`]: newArgent}) | ||||
|  | ||||
|     let histoire = "" | ||||
|     for (let reponse of this.suiviReponses) { | ||||
|       histoire += `<p>${reponse.question}<br>${reponse.reponse} (${reponse.compName})</p>`       | ||||
|     for ( let key in this.choiceSummary) { | ||||
|       let stageSummary = this.choiceSummary[key] | ||||
|       if (stageSummary.sexe) { | ||||
|         histoire += `<h3>Origine Sociale</h3>` | ||||
|         histoire += `<p>${stageSummary.sexe} - ${stageSummary.religion} - ${stageSummary.origineSociale}</p>` | ||||
|       } else { | ||||
|         histoire += `<h3>${game.system.tedeum.config.etapesEducation[key].label}</h3>` | ||||
|       } | ||||
|       if (stageSummary.caracBonus) { | ||||
|         histoire += `<p><strong>Caractéristiques : </strong><ul>` | ||||
|         for (let caracKey in stageSummary.caracBonus) { | ||||
|           histoire += `<li>${TeDeumUtility.upperFirst(caracKey)} +1</li>` | ||||
|         } | ||||
|         histoire += `</ul></p>` | ||||
|       } | ||||
|       if (stageSummary.competences) { | ||||
|         histoire += `<p><strong>Compétences : </strong><ul>` | ||||
|         for (let compName in stageSummary.competences) { | ||||
|           histoire += `<li>${TeDeumUtility.upperFirst(compName)} +1</li>` | ||||
|         } | ||||
|         histoire += `</ul></p>` | ||||
|       } | ||||
|       let questions = this.suiviReponses.filter( r => r.key === key) | ||||
|       if (questions.length > 0) { | ||||
|         histoire += `<p><strong>Réponses au questionnaire : </strong><ul>` | ||||
|         for (let question of questions) { | ||||
|           histoire += `<li>${question.question} : <i>${question.reponse}</i> (${TeDeumUtility.upperFirst(question.compName)}+1)</li>` | ||||
|         } | ||||
|         histoire += `</ul></p>` | ||||
|       } | ||||
|     } | ||||
|     await actor.update({ "system.histoire": histoire}) | ||||
|  | ||||
|     actor.render(true) | ||||
|  | ||||
|     const content = await renderTemplate("systems/fvtt-te-deum/templates/dialogs/character-creator-finished.hbs", context) | ||||
|     context.pointsCompetence = { | ||||
|       "savoir": { score: actor.getCompetenceScore("Mémoriser"), label: "Savoir" }, | ||||
|       "sensibilite": { score: actor.getCompetenceScore("Perception"), label: "Sensibilité" }, | ||||
|       "entregent": { score: actor.getCompetenceScore("Charme"), label: "Entregent" }, | ||||
|       "puissance": { score: actor.getCompetenceScore("Effort"), label: "Puissance" }, | ||||
|       "complexion": { score: actor.getCompetenceScore("Endurance"), label: "Complexion" }, | ||||
|       "adresse": { score: actor.getCompetenceScore("Initiative"),   label: "Adresse" }, | ||||
|     } | ||||
|  | ||||
|     const content = await foundry.applications.handlebars.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 }, | ||||
|   | ||||
| @@ -5,7 +5,7 @@ export class TeDeumCombat extends Combat { | ||||
|    | ||||
|   /* -------------------------------------------- */ | ||||
|   async rollInitiative(ids, formula = undefined, messageOptions = {} ) { | ||||
|     console.log("Roll INIT !") | ||||
|     //console.log("Roll INIT !") | ||||
|     ids = typeof ids === "string" ? [ids] : ids; | ||||
|     for (let cId of ids) { | ||||
|       const c = this.combatants.get(cId); | ||||
|   | ||||
| @@ -57,7 +57,7 @@ export const TEDEUM_CONFIG = { | ||||
|  | ||||
|   descriptionValeurOdd: { | ||||
|     1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" }, | ||||
|     2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Frustre", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" }, | ||||
|     2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Fruste", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" }, | ||||
|     3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlé", sensibilite: "Ouvert", entregent: "Badin", puissance: "Membru", complexion: "Dispos", adresse: "Ingambe" }, | ||||
|     4: { valeur: 4, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" }, | ||||
|     5: { valeur: 5, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" }, | ||||
| @@ -71,12 +71,20 @@ export const TEDEUM_CONFIG = { | ||||
|   }, | ||||
|   descriptionValeur: { | ||||
|     1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sot", sensibilite: "Obtus", entregent: "Rustaud", puissance: "Menu", complexion: "Anémique", adresse: "Empesé" }, | ||||
|     2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Frustre", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" }, | ||||
|     2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limité", sensibilite: "Etriqué", entregent: "Fruste", puissance: "Délicat", complexion: "Languide", adresse: "Gauche" }, | ||||
|     3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlé", sensibilite: "Ouvert", entregent: "Badin", puissance: "Membru", complexion: "Dispos", adresse: "Ingambe" }, | ||||
|     4: { valeur: 4, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettré", sensibilite: "Fin", entregent: "Disert", puissance: "Vigoureux", complexion: "Gaillard", adresse: "Leste" }, | ||||
|     5: { valeur: 5, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtil", entregent: "Galant", puissance: "Musculeux", complexion: "Sanguin", adresse: "Preste" }, | ||||
|     6: { valeur: 6, qualite: "Admirable", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituel", entregent: "Sémillant", puissance: "Hercule", complexion: "Aguerri", adresse: "Alerte" }, | ||||
|   }, | ||||
|   descriptionValeurFemme: { | ||||
|     1: { valeur: 1, qualite: "Mauvais", dice: "d4", negativeDice: "d20", savoir: "Sotte", sensibilite: "Obtuse", entregent: "Rustaude", puissance: "Menue", complexion: "Anémique", adresse: "Empesée" }, | ||||
|     2: { valeur: 2, qualite: "Médiocre", dice: "d6", negativeDice: "d12", savoir: "Limitée", sensibilite: "Etriquée", entregent: "Fruste", puissance: "Délicate", complexion: "Languide", adresse: "Gauche" }, | ||||
|     3: { valeur: 3, qualite: "Correct", dice: "d8", negativeDice: "d10", savoir: "Mêlée", sensibilite: "Ouverte", entregent: "Badine", puissance: "Membrue", complexion: "Dispose", adresse: "Ingambe" }, | ||||
|     4: { valeur: 4, qualite: "Bon", dice: "d10", negativeDice: "d8", savoir: "Lettrée", sensibilite: "Fine", entregent: "Diserte", puissance: "Vigoureuse", complexion: "Gaillarde", adresse: "Leste" }, | ||||
|     5: { valeur: 5, qualite: "Excellent", dice: "d12", negativeDice: "d6", savoir: "Docte", sensibilite: "Subtile", entregent: "Galante", puissance: "Musculeuse", complexion: "Sanguine", adresse: "Preste" }, | ||||
|     6: { valeur: 6, qualite: "Admirable", dice: "d20", negativeDice: "d4", savoir: "Humaniste", sensibilite: "Spirituelle", entregent: "Sémillante", puissance: "Hercule", complexion: "Aguerrie", adresse: "Alerte" }, | ||||
|   }, | ||||
|   diceValeur: ["d4", "d6", "d8", "d10", "d12", "d20"], | ||||
|   degatsArmure: { | ||||
|     sansarmure: { label: "Sans armure" }, | ||||
| @@ -117,6 +125,11 @@ export const TEDEUM_CONFIG = { | ||||
|     melee: { label: "Mêlée", value: "melee" }, | ||||
|     tir: { label: "Tir", value: "tir" } | ||||
|   }, | ||||
|   genreEducation: { | ||||
|     "homme": { label: "Homme", value: "Homme" }, | ||||
|     "femme": { label: "Femme", value: "Femme" }, | ||||
|     "mixte": { label: "Mixte", value: "Mixte" } | ||||
|   }, | ||||
|   armeAllonges: { | ||||
|     courte: { label: "Courte", value: "courte" }, | ||||
|     moyenne: { label: "Moyenne", value: "moyenne" }, | ||||
| @@ -152,11 +165,16 @@ export const TEDEUM_CONFIG = { | ||||
|     sol: { label: "Sols", id: "sol", value: 10 }, | ||||
|     livre: { label: "Livres", id: "livre", value: 100 } | ||||
|   }, | ||||
|   monnaieUnit: { | ||||
|     "1": { label: "Deniers", id: "denier", value: 1 }, | ||||
|     "10": { label: "Sols", id: "sol", value: 10 }, | ||||
|     "100": { label: "Livres", id: "livre", value: 100 } | ||||
|   }, | ||||
|   etapesEducation: { | ||||
|     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 }, | ||||
|     pouponniere: { label: "La Pouponnière", value: "pouponniere", agemin: 0, agemax: 6, nbCompetences: 2, nbCaracteristiques: 3, hasGenre: false, hasQuestionnaire: true, hasDebouches: false, hasMultiplier: false, canCompetencesOpt: false }, | ||||
|     petitsgrimauds: { label: "La classe des Petits Grimauds", value: "petitsgrimauds", agemin: 7, agemax: 12, nbCompetences: 10, hasGenre: true, 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, hasGenre: true, hasQuestionnaire: true, hasDebouches: true, hasMultiplier: false, canCompetencesOpt: false }, | ||||
|     ageviril: { label: "L'Age Viril", value: "ageviril", agemin: 17, agemax: 17, nbCompetences: 9, nbCaracteristiques: 2, hasGenre: false, 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: "livres", value: 1 }, | ||||
|   | ||||
| @@ -18,13 +18,14 @@ export class TeDeumUtility { | ||||
|     Hooks.on("renderActorDirectory", (app, html, data) => { | ||||
|       if (game.user.can('ACTOR_CREATE')) { | ||||
|         const button = document.createElement('button'); | ||||
|         button.style.width = '90%'; | ||||
|         button.style.width = '60%'; | ||||
|         button.classList.add('tedeum-create-character'); | ||||
|         button.innerHTML = 'Créer un Personnage' | ||||
|         button.addEventListener('click', () => { | ||||
|           let cr = new game.system.tedeum.TeDeumCharacterCreator(); | ||||
|           cr.init() | ||||
|         }) | ||||
|         html.find('.header-actions').after(button) | ||||
|         $(html).find('.header-actions').after(button) | ||||
|       } | ||||
|     }) | ||||
|     //Hooks.on("getChatLogEntryContext", (html, options) => TeDeumUtility.chatMenuManager(html, options)); | ||||
| @@ -92,6 +93,13 @@ export class TeDeumUtility { | ||||
|     Handlebars.registerHelper('isGM', function () { | ||||
|       return game.user.isGM | ||||
|     }) | ||||
|     Handlebars.registerHelper('monnaie', function (value) { | ||||
|       let monnaie = game.system.tedeum.config.monnaieUnit[String(value)] | ||||
|       if (monnaie) { | ||||
|         return monnaie.label | ||||
|       } | ||||
|       return value | ||||
|     }) | ||||
|  | ||||
|     // Load compendium data | ||||
|     const competences = await TeDeumUtility.loadCompendium("fvtt-te-deum.competences") | ||||
| @@ -160,6 +168,7 @@ export class TeDeumUtility { | ||||
|     formData.hasMultiplier = etape.hasMultiplier; | ||||
|     formData.hasDebouches = etape.hasDebouches; | ||||
|     formData.canCompetencesOpt = etape.canCompetencesOpt; | ||||
|     formData.hasGenre = etape.hasGenre; | ||||
|   } | ||||
|  | ||||
|   /*-------------------------------------------- */ | ||||
| @@ -200,11 +209,13 @@ export class TeDeumUtility { | ||||
|       ui.notifications.info("Opposition démarrée avec " + rollData.alias); | ||||
|     } else { | ||||
|       // Perform the opposition | ||||
|       let isAttackWinner = true | ||||
|       let rWinner = this.currentOpposition | ||||
|       let rLooser = rollData | ||||
|       if (rWinner.total < rLooser.total) { | ||||
|         rWinner = rollData | ||||
|         rLooser = this.currentOpposition | ||||
|         isAttackWinner = false | ||||
|       } | ||||
|       this.currentOpposition = undefined // Reset opposition | ||||
|       let oppositionData = { | ||||
| @@ -212,17 +223,35 @@ export class TeDeumUtility { | ||||
|         looser: rLooser | ||||
|       } | ||||
|       let msg = await this.createChatWithRollMode(rollData.alias, { | ||||
|         content: await renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-opposition-result.hbs`, oppositionData) | ||||
|         content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-opposition-result.hbs`, oppositionData) | ||||
|       }) | ||||
|       await msg.setFlag("world", "te-deum-rolldata", rollData) | ||||
|  | ||||
|       // Si le gagnant est l'attaquant, appliquer les dégats sur la victime | ||||
|       if ( isAttackWinner && rWinner.isSuccess && rWinner.mode == "arme" &&  rWinner.arme?.system.typeArme == "melee" && rWinner.defenderTokenId) { | ||||
|         this.appliquerDegats(rWinner) | ||||
|       } | ||||
|  | ||||
|       console.log("Rolldata result", rollData) | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */  /* -------------------------------------------- */ | ||||
|   static async appliquerDegats(rollData) { | ||||
|     await this.processAttaqueMelee(rollData) | ||||
|     let defenderToken = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId) | ||||
|     if (defenderToken) { | ||||
|       let actor = defenderToken.actor | ||||
|       await actor.appliquerDegats(rollData) | ||||
|     } else { | ||||
|       ui.notifications.error("Impossible de trouver la cible de l'attaque, aucun degats appliqué") | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */  /* -------------------------------------------- */ | ||||
|   static async chatListeners(html) { | ||||
|  | ||||
|     html.on("click", '.chat-command-button', event => { | ||||
|     $(html).on("click", '.chat-command-opposition', event => { | ||||
|       let messageId = TeDeumUtility.findChatMessageId(event.currentTarget) | ||||
|       let message = game.messages.get(messageId) | ||||
|       let rollData = message.getFlag("world", "te-deum-rolldata") | ||||
| @@ -230,6 +259,14 @@ export class TeDeumUtility { | ||||
|         TeDeumUtility.manageOpposition(rollData, messageId) | ||||
|       } | ||||
|     }) | ||||
|     $(html).on("click", '.chat-command-appliquer-degats', event => { | ||||
|       let messageId = TeDeumUtility.findChatMessageId(event.currentTarget) | ||||
|       let message = game.messages.get(messageId) | ||||
|       let rollData = message.getFlag("world", "te-deum-rolldata") | ||||
|       if (rollData) { | ||||
|         TeDeumUtility.appliquerDegats(rollData, messageId) | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
| @@ -241,7 +278,7 @@ export class TeDeumUtility { | ||||
|       'systems/fvtt-te-deum/templates/items/partial-item-description.hbs', | ||||
|       'systems/fvtt-te-deum/templates/dialogs/partial-creator-status.hbs' | ||||
|     ] | ||||
|     return loadTemplates(templatePaths); | ||||
|     return foundry.applications.handlebars.loadTemplates(templatePaths); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
| @@ -318,7 +355,7 @@ export class TeDeumUtility { | ||||
|       let rollData = msg.data.rollData | ||||
|       if (game.user.isGM) { | ||||
|         let chatMsg = await this.createChatMessage(rollData.alias, "blindroll", { | ||||
|           content: await renderTemplate(msg.data.template, rollData), | ||||
|           content: await foundry.applications.handlebars.renderTemplate(msg.data.template, rollData), | ||||
|           whisper: game.user.id | ||||
|         }) | ||||
|         chatMsg.setFlag("world", "tedeum-rolldata", rollData) | ||||
| @@ -408,10 +445,11 @@ export class TeDeumUtility { | ||||
|       } | ||||
|     } | ||||
|     if (rollData.diceSum == 1) { | ||||
|       let critiqueRoll = await new Roll(rollData.carac.negativeDice).roll() | ||||
|       let critiqueRoll = await new Roll(rollData.carac.negativeDice) | ||||
|       await critiqueRoll.evaluate() | ||||
|       await this.showDiceSoNice(critiqueRoll, game.settings.get("core", "rollMode")) | ||||
|       rollData.critiqueRoll = foundry.utils.duplicate(critiqueRoll) | ||||
|       if (critiqueRoll.total > rollData.competence.score) { | ||||
|       if (critiqueRoll.total > rollData.competence.system.score) { | ||||
|         rollData.isEchecCritique = true | ||||
|       } | ||||
|     } | ||||
| @@ -441,7 +479,7 @@ export class TeDeumUtility { | ||||
|       } | ||||
|       let diceBase = this.modifyDice(rollData.carac.dice, localModifier + Number(rollData.bonusMalus) + rollData.santeModifier) | ||||
|       if (!diceBase) return; | ||||
|       diceFormula = diceBase + "x + " + rollData.competence.system.score | ||||
|       diceFormula = diceBase + "x + " + rollData.compScore | ||||
|     } | ||||
|     if (rollData.enableProvidence) { | ||||
|       diceFormula += " + " + rollData.providence.dice | ||||
| @@ -465,18 +503,13 @@ export class TeDeumUtility { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   static async processAttaqueMelee(rollData) { | ||||
|     if (rollData.arme?.system.typeArme != "melee") { | ||||
|       return | ||||
|     } | ||||
|     if (rollData.isSuccess) { | ||||
|       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() | ||||
|       await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode")) | ||||
|       rollData.degatsRoll = foundry.utils.duplicate(degatsRoll) | ||||
|       rollData.degats = degatsRoll.total | ||||
|     } | ||||
|     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() | ||||
|     await this.showDiceSoNice(degatsRoll, game.settings.get("core", "rollMode")) | ||||
|     rollData.degatsRoll = foundry.utils.duplicate(degatsRoll) | ||||
|     rollData.degats = degatsRoll.total | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
| @@ -489,7 +522,7 @@ export class TeDeumUtility { | ||||
|       await this.getLocalisation(rollData) | ||||
|       // Now the degats | ||||
|       let degatsRoll = await new Roll(rollData.arme.system.degats).roll() | ||||
|       await this.showDiceSoNice(locRoll, game.settings.get("core", "rollMode")) | ||||
|       await this.showDiceSoNice(rollData.locRoll, game.settings.get("core", "rollMode")) | ||||
|       rollData.degatsRoll = foundry.utils.duplicate(degatsRoll) | ||||
|       rollData.degats = degatsRoll.total | ||||
|     } | ||||
| @@ -504,6 +537,14 @@ export class TeDeumUtility { | ||||
|       rollData.difficulty = "pardefaut" | ||||
|     } | ||||
|     rollData.difficulty = game.system.tedeum.config.difficulte[rollData.difficulty].value | ||||
|     // Compute the real competence score | ||||
|     if ( rollData.competence ) { | ||||
|       if ( rollData.competence.system.isBase) { | ||||
|         rollData.compScore = actor.system.caracteristiques[rollData.competence.system.caracteristique].value | ||||
|       } else { | ||||
|         rollData.compScore = rollData.competence.system.score | ||||
|       } | ||||
|     } | ||||
|     let diceFormula = this.computeRollFormula(rollData, actor) | ||||
|     if (!diceFormula) return; | ||||
|     console.log("RollData", rollData, diceFormula) | ||||
| @@ -519,10 +560,9 @@ export class TeDeumUtility { | ||||
|     await this.computeResults(rollData) | ||||
|  | ||||
|     await this.processAttaqueDistance(rollData) | ||||
|     await this.processAttaqueMelee(rollData) | ||||
|  | ||||
|     let msg = await this.createChatWithRollMode(rollData.alias, { | ||||
|       content: await renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-generic-result.hbs`, rollData) | ||||
|       content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-te-deum/templates/chat/chat-generic-result.hbs`, rollData) | ||||
|     }) | ||||
|     await msg.setFlag("world", "te-deum-rolldata", rollData) | ||||
|     console.log("Rolldata result", rollData) | ||||
| @@ -531,19 +571,10 @@ export class TeDeumUtility { | ||||
|     if (rollData.enableProvidence) { | ||||
|       actor.modifyProvidence(-1) | ||||
|     } | ||||
|     // Manage XP  | ||||
|     // Manage XP | ||||
|     if (rollData.isReussiteCritique || rollData.isEchecCritique) { | ||||
|       actor.modifyXP(rollData.carac.key, 1) | ||||
|     } | ||||
|  | ||||
|     // gestion degats automatique | ||||
|     if (rollData.arme && rollData.defenderTokenId) { | ||||
|       let defenderToken = canvas.tokens.placeables.find(t => t.id == rollData.defenderTokenId) | ||||
|       if (defenderToken) { | ||||
|         let actor = defenderToken.actor | ||||
|         await actor.appliquerDegats(rollData) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   | ||||
| @@ -14,7 +14,9 @@ export class TeDeumEducationSchema extends foundry.abstract.TypeDataModel { | ||||
|         return obj; | ||||
|       }, {}) | ||||
|     ); | ||||
|      | ||||
|  | ||||
|     schema.genre = new fields.StringField({required: true, initial: "Homme", choices: ["masculin", "mixte", "Homme", "Femme", "Mixte"]}); | ||||
|  | ||||
|     schema.nbChoixCarac = new fields.NumberField({ ...requiredInteger, initial: 1, min: 1 }); | ||||
|     schema.caracteristiques = new fields.SchemaField(Array.fromRange(3, 1).reduce((caracs, i) => { | ||||
|       caracs[`carac${i}`] = new fields.SchemaField({ | ||||
| @@ -30,7 +32,7 @@ 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) => { | ||||
| @@ -49,7 +51,7 @@ export class TeDeumEducationSchema extends foundry.abstract.TypeDataModel { | ||||
|             reponse: new fields.StringField({ required: true, blank: true, initial: "" }), | ||||
|             compName: new fields.StringField({ required: true, blank: true, initial: "" }), | ||||
|             toSelect: new fields.BooleanField({ initial: false }), | ||||
|             compList: new fields.SchemaField(Array.fromRange(10, 1).reduce((comps, i) => { | ||||
|             compList: new fields.SchemaField(Array.fromRange(16, 1).reduce((comps, i) => { | ||||
|               comps[`comp${i}`] = new fields.SchemaField({ | ||||
|                 compName: new fields.StringField({ required: true, blank: true, initial: "" }), | ||||
|               }); | ||||
| @@ -61,7 +63,7 @@ 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: "" }) | ||||
| @@ -71,7 +73,7 @@ export class TeDeumEducationSchema extends foundry.abstract.TypeDataModel { | ||||
|  | ||||
|     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: "" }); | ||||
|  | ||||
|   | ||||
| @@ -13,4 +13,10 @@ export class TeDeumEquipementSchema extends foundry.abstract.TypeDataModel { | ||||
|  | ||||
|     return schema; | ||||
|   } | ||||
|  | ||||
|   get monnaieLabel() { | ||||
|     console.log("monnaieLabel", this.monnaie,game.system.tedeum.config.monnaieUnit) | ||||
|     return game.system.tedeum.config.monnaieUnit[String(this.monnaie)]?.label; | ||||
|   } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -9,7 +9,8 @@ export class TeDeumMaladieSchema extends foundry.abstract.TypeDataModel { | ||||
|     schema.virulence = new fields.StringField({required: true, choices: ["fatigue", "epuisement", "souffrance", "agonie"], initial: "fatigue"}); | ||||
|     schema.fievre = new fields.StringField({required: true, choices: ["aucune", "legere", "forte", "grave"], initial: "aucune"}); | ||||
|     schema.symptomes = new fields.HTMLField({ required: true, blank: true }); | ||||
|     schema.appliquee = new fields.BooleanField({initial: false}), | ||||
|     schema.complications = new fields.HTMLField({ required: true, blank: true }); | ||||
|     schema.appliquee = new fields.BooleanField({initial: false}); | ||||
|  | ||||
|     schema.description = new fields.HTMLField({ required: true, blank: true }); | ||||
|  | ||||
|   | ||||
| @@ -26,33 +26,35 @@ export class TeDeumPJSchema extends foundry.abstract.TypeDataModel { | ||||
|         obj[loc.id] = new fields.SchemaField({ | ||||
|           armure: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 }), | ||||
|           touche:  new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 }), | ||||
|           blessures: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 })           | ||||
|           blessures: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 20 }) | ||||
|         }); | ||||
|         return obj; | ||||
|       }, {}) | ||||
|     ); | ||||
|  | ||||
|     schema.fortune = new fields.SchemaField({ | ||||
|       "ecus": 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 })  | ||||
|       "deniers": new fields.NumberField({ ...requiredInteger, initial: 0, min: 0 }) | ||||
|     }); | ||||
|  | ||||
|     schema.description = new fields.HTMLField({required: true, blank: true}); | ||||
|     schema.notes = new fields.HTMLField({required: true, blank: true}); | ||||
|     schema.connaissances = new fields.HTMLField({required: true, blank: true}); | ||||
|     schema.histoire = new fields.HTMLField({required: true, blank: true}); | ||||
|     schema.vetements = new fields.HTMLField({required: true, blank: true}); | ||||
|     schema.equipmentfree = new fields.HTMLField({required: true, blank: true}); | ||||
|  | ||||
|     schema.genre = new fields.StringField({required: true, choices: game.system.tedeum.config.genre, initial: "Femme"}); | ||||
|     schema.age = new fields.StringField({ required: false, blank: true, initial: undefined }); | ||||
|     schema.statutocial = new fields.StringField({ required: false, blank: true, initial: undefined }); | ||||
|     schema.chargestitre = new fields.StringField({ required: false, blank: true, initial: undefined }); | ||||
|     schema.charges = new fields.StringField({ required: false, blank: true, initial: undefined }); | ||||
|     schema.religion = new fields.StringField({ required: false, blank: true, initial: undefined }); | ||||
|     schema.lieunaissance = new fields.StringField({ required: false, blank: true, initial: undefined }); | ||||
|      | ||||
|     schema.age = new fields.StringField({ required: false, blank: true, initial: "" }); | ||||
|     schema.datenaissance = new fields.StringField({ required: false, blank: true, initial: "" }); | ||||
|     schema.statutocial = new fields.StringField({ required: false, blank: true, initial: "" }); | ||||
|     schema.chargestitre = new fields.StringField({ required: false, blank: true, initial: "" }); | ||||
|     schema.charges = new fields.StringField({ required: false, blank: true, initial: "" }); | ||||
|     schema.religion = new fields.StringField({ required: false, blank: true, initial: "" }); | ||||
|     schema.lieunaissance = new fields.StringField({ required: false, blank: true, initial: "" }); | ||||
|  | ||||
|     return schema; | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -4,7 +4,7 @@ import { TeDeumUtility } from "../common/tedeum-utility.js"; | ||||
|  * Extend the basic ItemSheet with some very simple modifications | ||||
|  * @extends {ItemSheet} | ||||
|  */ | ||||
| export class TeDeumItemSheet extends ItemSheet { | ||||
| export class TeDeumItemSheet extends foundry.appv1.sheets.ItemSheet { | ||||
|  | ||||
|   /** @override */ | ||||
|   static get defaultOptions() { | ||||
| @@ -49,11 +49,11 @@ export class TeDeumItemSheet extends ItemSheet { | ||||
|       limited: this.object.limited, | ||||
|       options: this.options, | ||||
|       owner: this.document.isOwner, | ||||
|       description: await TextEditor.enrichHTML(this.object.system.description, { async: true }), | ||||
|       notes: await TextEditor.enrichHTML(this.object.system.notes, { async: true }), | ||||
|       description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, { async: true }), | ||||
|       notes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.notes, { async: true }), | ||||
|       isGM: game.user.isGM | ||||
|     } | ||||
|      | ||||
|  | ||||
|     if (this.object.type == "education") { | ||||
|       TeDeumUtility.prepareEducationContent(formData); | ||||
|     } | ||||
| @@ -103,7 +103,7 @@ export class TeDeumItemSheet extends ItemSheet { | ||||
|     let levelIndex = Number($(ev.currentTarget).parents(".item").data("level-index")) | ||||
|     let choiceIndex = Number($(ev.currentTarget).parents(".item").data("choice-index")) | ||||
|     let featureId = $(ev.currentTarget).parents(".item").data("feature-id") | ||||
|      | ||||
|  | ||||
|     let itemData = this.object.system.levels[levelIndex].choices[choiceIndex].features[featureId] | ||||
|  | ||||
|     if (itemData.name != 'None') { | ||||
|   | ||||
| @@ -51,7 +51,7 @@ Hooks.once("init", async function () { | ||||
|   // preload handlebars templates | ||||
|   TeDeumUtility.preloadHandlebarsTemplates(); | ||||
|  | ||||
|   // Set an initiative formula for the system  | ||||
|   // Set an initiative formula for the system | ||||
|   CONFIG.Combat.initiative = { | ||||
|     formula: "1d6", | ||||
|     decimals: 1 | ||||
| @@ -79,17 +79,17 @@ Hooks.once("init", async function () { | ||||
|     blessure: TeDeumBlessureSchema, | ||||
|     maladie: TeDeumMaladieSchema, | ||||
|   }; | ||||
|    | ||||
|  | ||||
|   console.log("TeDeum RPG | Ready"); | ||||
|  | ||||
|   Actors.unregisterSheet("core", ActorSheet); | ||||
|   Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pj"], makeDefault: true }); | ||||
|   Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pnj"], makeDefault: true }); | ||||
|    | ||||
|   Items.unregisterSheet("core", ItemSheet); | ||||
|   Items.registerSheet("fvtt-te-deum", TeDeumItemSheet, { makeDefault: true }); | ||||
|   foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet); | ||||
|   foundry.documents.collections.Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pj"], makeDefault: true }); | ||||
|   foundry.documents.collections.Actors.registerSheet("fvtt-te-deum", TeDeumActorPJSheet, { types: ["pnj"], makeDefault: true }); | ||||
|  | ||||
|   TeDeumUtility.init()  | ||||
|   foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet); | ||||
|   foundry.documents.collections.Items.registerSheet("fvtt-te-deum", TeDeumItemSheet, { makeDefault: true }); | ||||
|  | ||||
|   TeDeumUtility.init() | ||||
| }); | ||||
|  | ||||
|  | ||||
| @@ -106,7 +106,7 @@ Hooks.once("ready", function () { | ||||
|       user: game.user._id | ||||
|     }); | ||||
|   } | ||||
|    | ||||
|  | ||||
|   import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{ | ||||
|     console.log("ClassCounter loaded", moduleCounter) | ||||
|     moduleCounter.ClassCounter.registerUsageCount() | ||||
| @@ -134,4 +134,3 @@ Hooks.on("chatMessage", (html, content, msg) => { | ||||
|   } | ||||
|   return true; | ||||
| }); | ||||
|  | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/aides/000103.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/aides/000103.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000023 | ||||
| MANIFEST-000120 | ||||
|   | ||||
| @@ -1,8 +1,7 @@ | ||||
| 2025/02/22-22:33:49.671443 7f59317fa6c0 Recovering log #21 | ||||
| 2025/02/22-22:33:49.682157 7f59317fa6c0 Delete type=3 #19 | ||||
| 2025/02/22-22:33:49.682211 7f59317fa6c0 Delete type=0 #21 | ||||
| 2025/02/22-22:43:19.821691 7f5693fff6c0 Level-0 table #26: started | ||||
| 2025/02/22-22:43:19.821739 7f5693fff6c0 Level-0 table #26: 0 bytes OK | ||||
| 2025/02/22-22:43:19.827819 7f5693fff6c0 Delete type=0 #24 | ||||
| 2025/02/22-22:43:19.828050 7f5693fff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) | ||||
| 2025/02/22-22:43:19.841442 7f5693fff6c0 Manual compaction at level-1 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) | ||||
| 2025/07/09-17:43:10.022659 7f2a0effd6c0 Recovering log #118 | ||||
| 2025/07/09-17:43:10.033191 7f2a0effd6c0 Delete type=3 #116 | ||||
| 2025/07/09-17:43:10.033247 7f2a0effd6c0 Delete type=0 #118 | ||||
| 2025/07/09-18:03:48.854204 7f276ffff6c0 Level-0 table #123: started | ||||
| 2025/07/09-18:03:48.854235 7f276ffff6c0 Level-0 table #123: 0 bytes OK | ||||
| 2025/07/09-18:03:48.860211 7f276ffff6c0 Delete type=0 #121 | ||||
| 2025/07/09-18:03:48.860371 7f276ffff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,8 +1,7 @@ | ||||
| 2025/02/21-17:44:00.297169 7f5931ffb6c0 Recovering log #16 | ||||
| 2025/02/21-17:44:00.350341 7f5931ffb6c0 Delete type=3 #14 | ||||
| 2025/02/21-17:44:00.350497 7f5931ffb6c0 Delete type=0 #16 | ||||
| 2025/02/21-17:47:55.710312 7f5693fff6c0 Level-0 table #22: started | ||||
| 2025/02/21-17:47:55.710349 7f5693fff6c0 Level-0 table #22: 0 bytes OK | ||||
| 2025/02/21-17:47:55.716766 7f5693fff6c0 Delete type=0 #20 | ||||
| 2025/02/21-17:47:55.743124 7f5693fff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) | ||||
| 2025/02/21-17:47:55.743202 7f5693fff6c0 Manual compaction at level-1 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) | ||||
| 2025/07/02-23:06:08.560525 7f0793fff6c0 Recovering log #114 | ||||
| 2025/07/02-23:06:08.610681 7f0793fff6c0 Delete type=3 #112 | ||||
| 2025/07/02-23:06:08.610784 7f0793fff6c0 Delete type=0 #114 | ||||
| 2025/07/02-23:08:13.585521 7f07923ff6c0 Level-0 table #119: started | ||||
| 2025/07/02-23:08:13.585561 7f07923ff6c0 Level-0 table #119: 0 bytes OK | ||||
| 2025/07/02-23:08:13.592021 7f07923ff6c0 Delete type=0 #117 | ||||
| 2025/07/02-23:08:13.592190 7f07923ff6c0 Manual compaction at level-0 from '!journal!uNwJgi4kXBCiZmAH' @ 72057594037927935 : 1 .. '!journal.pages!uNwJgi4kXBCiZmAH.onhNU0mXhOpdNZJF' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/aides/MANIFEST-000120
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/aides/MANIFEST-000120
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/aides/lost/MANIFEST-000047
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/aides/lost/MANIFEST-000047
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/aides/lost/MANIFEST-000054
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/aides/lost/MANIFEST-000054
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/aides/lost/MANIFEST-000061
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/aides/lost/MANIFEST-000061
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armes/000206.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armes/000206.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000125 | ||||
| MANIFEST-000223 | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2025/02/22-22:33:49.571959 7f5930ff96c0 Recovering log #123 | ||||
| 2025/02/22-22:33:49.581451 7f5930ff96c0 Delete type=3 #121 | ||||
| 2025/02/22-22:33:49.581507 7f5930ff96c0 Delete type=0 #123 | ||||
| 2025/02/22-22:43:19.756476 7f5693fff6c0 Level-0 table #128: started | ||||
| 2025/02/22-22:43:19.756512 7f5693fff6c0 Level-0 table #128: 0 bytes OK | ||||
| 2025/02/22-22:43:19.763078 7f5693fff6c0 Delete type=0 #126 | ||||
| 2025/02/22-22:43:19.770534 7f5693fff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end) | ||||
| 2025/07/09-17:43:09.933075 7f2a0e7fc6c0 Recovering log #221 | ||||
| 2025/07/09-17:43:09.943069 7f2a0e7fc6c0 Delete type=3 #219 | ||||
| 2025/07/09-17:43:09.943126 7f2a0e7fc6c0 Delete type=0 #221 | ||||
| 2025/07/09-18:03:48.778823 7f276ffff6c0 Level-0 table #226: started | ||||
| 2025/07/09-18:03:48.778862 7f276ffff6c0 Level-0 table #226: 0 bytes OK | ||||
| 2025/07/09-18:03:48.785076 7f276ffff6c0 Delete type=0 #224 | ||||
| 2025/07/09-18:03:48.804468 7f276ffff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2025/02/21-17:43:59.860699 7f59317fa6c0 Recovering log #119 | ||||
| 2025/02/21-17:43:59.916350 7f59317fa6c0 Delete type=3 #117 | ||||
| 2025/02/21-17:43:59.916493 7f59317fa6c0 Delete type=0 #119 | ||||
| 2025/02/21-17:47:55.663886 7f5693fff6c0 Level-0 table #124: started | ||||
| 2025/02/21-17:47:55.663923 7f5693fff6c0 Level-0 table #124: 0 bytes OK | ||||
| 2025/02/21-17:47:55.670649 7f5693fff6c0 Delete type=0 #122 | ||||
| 2025/02/21-17:47:55.677247 7f5693fff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end) | ||||
| 2025/07/02-23:06:08.061648 7f0792ffd6c0 Recovering log #217 | ||||
| 2025/07/02-23:06:08.112616 7f0792ffd6c0 Delete type=3 #215 | ||||
| 2025/07/02-23:06:08.112666 7f0792ffd6c0 Delete type=0 #217 | ||||
| 2025/07/02-23:08:13.519462 7f07923ff6c0 Level-0 table #222: started | ||||
| 2025/07/02-23:08:13.519492 7f07923ff6c0 Level-0 table #222: 0 bytes OK | ||||
| 2025/07/02-23:08:13.525466 7f07923ff6c0 Delete type=0 #220 | ||||
| 2025/07/02-23:08:13.539414 7f07923ff6c0 Manual compaction at level-0 from '!folders!InCQeTRdT5jXMX82' @ 72057594037927935 : 1 .. '!items!wxIHkrq98eQ3cOvp' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armes/MANIFEST-000223
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armes/MANIFEST-000223
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/armes/lost/000165.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/armes/lost/000165.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armes/lost/MANIFEST-000149
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armes/lost/MANIFEST-000149
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armes/lost/MANIFEST-000156
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armes/lost/MANIFEST-000156
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armes/lost/MANIFEST-000163
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armes/lost/MANIFEST-000163
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armures/000205.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armures/000205.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/armures/000224.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/armures/000224.log
									
									
									
									
									
										Normal file
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000125 | ||||
| MANIFEST-000222 | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2025/02/22-22:33:49.584858 7f59317fa6c0 Recovering log #123 | ||||
| 2025/02/22-22:33:49.595075 7f59317fa6c0 Delete type=3 #121 | ||||
| 2025/02/22-22:33:49.595272 7f59317fa6c0 Delete type=0 #123 | ||||
| 2025/02/22-22:43:19.749434 7f5693fff6c0 Level-0 table #128: started | ||||
| 2025/02/22-22:43:19.749479 7f5693fff6c0 Level-0 table #128: 0 bytes OK | ||||
| 2025/02/22-22:43:19.756348 7f5693fff6c0 Delete type=0 #126 | ||||
| 2025/02/22-22:43:19.770523 7f5693fff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end) | ||||
| 2025/07/09-17:43:09.945259 7f2a0dffb6c0 Recovering log #220 | ||||
| 2025/07/09-17:43:09.955705 7f2a0dffb6c0 Delete type=3 #218 | ||||
| 2025/07/09-17:43:09.955844 7f2a0dffb6c0 Delete type=0 #220 | ||||
| 2025/07/09-18:03:48.791392 7f276ffff6c0 Level-0 table #225: started | ||||
| 2025/07/09-18:03:48.791426 7f276ffff6c0 Level-0 table #225: 0 bytes OK | ||||
| 2025/07/09-18:03:48.797485 7f276ffff6c0 Delete type=0 #223 | ||||
| 2025/07/09-18:03:48.804509 7f276ffff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2025/02/21-17:43:59.921453 7f5931ffb6c0 Recovering log #119 | ||||
| 2025/02/21-17:43:59.978668 7f5931ffb6c0 Delete type=3 #117 | ||||
| 2025/02/21-17:43:59.978782 7f5931ffb6c0 Delete type=0 #119 | ||||
| 2025/02/21-17:47:55.657052 7f5693fff6c0 Level-0 table #124: started | ||||
| 2025/02/21-17:47:55.657095 7f5693fff6c0 Level-0 table #124: 0 bytes OK | ||||
| 2025/02/21-17:47:55.663742 7f5693fff6c0 Delete type=0 #122 | ||||
| 2025/02/21-17:47:55.677232 7f5693fff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end) | ||||
| 2025/07/02-23:06:08.115418 7f07937fe6c0 Recovering log #216 | ||||
| 2025/07/02-23:06:08.203034 7f07937fe6c0 Delete type=3 #214 | ||||
| 2025/07/02-23:06:08.203104 7f07937fe6c0 Delete type=0 #216 | ||||
| 2025/07/02-23:08:13.507158 7f07923ff6c0 Level-0 table #221: started | ||||
| 2025/07/02-23:08:13.507179 7f07923ff6c0 Level-0 table #221: 0 bytes OK | ||||
| 2025/07/02-23:08:13.513412 7f07923ff6c0 Delete type=0 #219 | ||||
| 2025/07/02-23:08:13.539385 7f07923ff6c0 Manual compaction at level-0 from '!folders!2wTJBj3dicRKzNOE' @ 72057594037927935 : 1 .. '!items!ufvhWG5V8pX0qrtR' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armures/MANIFEST-000222
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armures/MANIFEST-000222
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/armures/lost/000147.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/armures/lost/000147.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								packs/armures/lost/000151.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/armures/lost/000151.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								packs/armures/lost/000158.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/armures/lost/000158.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								packs/armures/lost/000165.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/armures/lost/000165.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armures/lost/MANIFEST-000149
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armures/lost/MANIFEST-000149
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armures/lost/MANIFEST-000156
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armures/lost/MANIFEST-000156
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armures/lost/MANIFEST-000163
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armures/lost/MANIFEST-000163
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/competences/000202.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/competences/000202.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/competences/000221.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/competences/000221.log
									
									
									
									
									
										Normal file
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000122 | ||||
| MANIFEST-000219 | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2025/02/22-22:33:49.555798 7f59327fc6c0 Recovering log #120 | ||||
| 2025/02/22-22:33:49.566915 7f59327fc6c0 Delete type=3 #118 | ||||
| 2025/02/22-22:33:49.567025 7f59327fc6c0 Delete type=0 #120 | ||||
| 2025/02/22-22:43:19.763211 7f5693fff6c0 Level-0 table #125: started | ||||
| 2025/02/22-22:43:19.763237 7f5693fff6c0 Level-0 table #125: 0 bytes OK | ||||
| 2025/02/22-22:43:19.770353 7f5693fff6c0 Delete type=0 #123 | ||||
| 2025/02/22-22:43:19.770546 7f5693fff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end) | ||||
| 2025/07/09-17:43:09.919870 7f2a0d7fa6c0 Recovering log #217 | ||||
| 2025/07/09-17:43:09.930288 7f2a0d7fa6c0 Delete type=3 #215 | ||||
| 2025/07/09-17:43:09.930358 7f2a0d7fa6c0 Delete type=0 #217 | ||||
| 2025/07/09-18:03:48.785230 7f276ffff6c0 Level-0 table #222: started | ||||
| 2025/07/09-18:03:48.785267 7f276ffff6c0 Level-0 table #222: 0 bytes OK | ||||
| 2025/07/09-18:03:48.791250 7f276ffff6c0 Delete type=0 #220 | ||||
| 2025/07/09-18:03:48.804490 7f276ffff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2025/02/21-17:43:59.798767 7f5930ff96c0 Recovering log #116 | ||||
| 2025/02/21-17:43:59.855271 7f5930ff96c0 Delete type=3 #114 | ||||
| 2025/02/21-17:43:59.855472 7f5930ff96c0 Delete type=0 #116 | ||||
| 2025/02/21-17:47:55.650583 7f5693fff6c0 Level-0 table #121: started | ||||
| 2025/02/21-17:47:55.650666 7f5693fff6c0 Level-0 table #121: 0 bytes OK | ||||
| 2025/02/21-17:47:55.656867 7f5693fff6c0 Delete type=0 #119 | ||||
| 2025/02/21-17:47:55.677212 7f5693fff6c0 Manual compaction at level-0 from '!folders!4OPhigzcPv46qbWW' @ 72057594037927935 : 1 .. '!items!yx4k7lQHGcom99mk' @ 0 : 0; will stop at (end) | ||||
| 2025/07/02-23:06:08.011331 7f0798bfa6c0 Recovering log #213 | ||||
| 2025/07/02-23:06:08.059546 7f0798bfa6c0 Delete type=3 #211 | ||||
| 2025/07/02-23:06:08.059612 7f0798bfa6c0 Delete type=0 #213 | ||||
| 2025/07/02-23:08:13.513511 7f07923ff6c0 Level-0 table #218: started | ||||
| 2025/07/02-23:08:13.513531 7f07923ff6c0 Level-0 table #218: 0 bytes OK | ||||
| 2025/07/02-23:08:13.519351 7f07923ff6c0 Delete type=0 #216 | ||||
| 2025/07/02-23:08:13.539400 7f07923ff6c0 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-000219
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/competences/MANIFEST-000219
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/competences/lost/000144.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/competences/lost/000144.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								packs/competences/lost/000148.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/competences/lost/000148.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								packs/competences/lost/000155.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/competences/lost/000155.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								packs/competences/lost/000162.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/competences/lost/000162.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/competences/lost/MANIFEST-000146
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/competences/lost/MANIFEST-000146
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/competences/lost/MANIFEST-000153
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/competences/lost/MANIFEST-000153
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/competences/lost/MANIFEST-000160
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/competences/lost/MANIFEST-000160
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/education/000234.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/education/000234.log
									
									
									
									
									
										Normal file
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000130 | ||||
| MANIFEST-000232 | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2025/02/22-22:33:49.598250 7f5931ffb6c0 Recovering log #128 | ||||
| 2025/02/22-22:33:49.609114 7f5931ffb6c0 Delete type=3 #126 | ||||
| 2025/02/22-22:33:49.609187 7f5931ffb6c0 Delete type=0 #128 | ||||
| 2025/02/22-22:43:19.742523 7f5693fff6c0 Level-0 table #133: started | ||||
| 2025/02/22-22:43:19.742609 7f5693fff6c0 Level-0 table #133: 0 bytes OK | ||||
| 2025/02/22-22:43:19.749216 7f5693fff6c0 Delete type=0 #131 | ||||
| 2025/02/22-22:43:19.770500 7f5693fff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end) | ||||
| 2025/07/09-17:43:09.957922 7f2a0d7fa6c0 Recovering log #229 | ||||
| 2025/07/09-17:43:09.968395 7f2a0d7fa6c0 Delete type=3 #227 | ||||
| 2025/07/09-17:43:09.968449 7f2a0d7fa6c0 Delete type=0 #229 | ||||
| 2025/07/09-18:03:48.797598 7f276ffff6c0 Level-0 table #235: started | ||||
| 2025/07/09-18:03:48.797621 7f276ffff6c0 Level-0 table #235: 0 bytes OK | ||||
| 2025/07/09-18:03:48.804333 7f276ffff6c0 Delete type=0 #233 | ||||
| 2025/07/09-18:03:48.804527 7f276ffff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,7 +1,14 @@ | ||||
| 2025/02/21-17:43:59.982694 7f59327fc6c0 Recovering log #124 | ||||
| 2025/02/21-17:44:00.043945 7f59327fc6c0 Delete type=3 #122 | ||||
| 2025/02/21-17:44:00.044048 7f59327fc6c0 Delete type=0 #124 | ||||
| 2025/02/21-17:47:55.670798 7f5693fff6c0 Level-0 table #129: started | ||||
| 2025/02/21-17:47:55.670851 7f5693fff6c0 Level-0 table #129: 0 bytes OK | ||||
| 2025/02/21-17:47:55.677050 7f5693fff6c0 Delete type=0 #127 | ||||
| 2025/02/21-17:47:55.677262 7f5693fff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end) | ||||
| 2025/07/02-23:06:08.205635 7f0798bfa6c0 Recovering log #225 | ||||
| 2025/07/02-23:06:08.258516 7f0798bfa6c0 Delete type=3 #223 | ||||
| 2025/07/02-23:06:08.258587 7f0798bfa6c0 Delete type=0 #225 | ||||
| 2025/07/02-23:08:13.497309 7f07923ff6c0 Level-0 table #230: started | ||||
| 2025/07/02-23:08:13.500727 7f07923ff6c0 Level-0 table #230: 31862 bytes OK | ||||
| 2025/07/02-23:08:13.507034 7f07923ff6c0 Delete type=0 #228 | ||||
| 2025/07/02-23:08:13.525588 7f07923ff6c0 Manual compaction at level-0 from '!folders!9PQi3Lv54rpcxavo' @ 72057594037927935 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at '!items!dbl7clezSXISzlqE' @ 511 : 1 | ||||
| 2025/07/02-23:08:13.525598 7f07923ff6c0 Compacting 1@0 + 1@1 files | ||||
| 2025/07/02-23:08:13.532830 7f07923ff6c0 Generated table #231@0: 71 keys, 264331 bytes | ||||
| 2025/07/02-23:08:13.532886 7f07923ff6c0 Compacted 1@0 + 1@1 files => 264331 bytes | ||||
| 2025/07/02-23:08:13.538890 7f07923ff6c0 compacted to: files[ 0 1 0 0 0 0 0 ] | ||||
| 2025/07/02-23:08:13.539063 7f07923ff6c0 Delete type=2 #214 | ||||
| 2025/07/02-23:08:13.539294 7f07923ff6c0 Delete type=2 #230 | ||||
| 2025/07/02-23:08:13.539429 7f07923ff6c0 Manual compaction at level-0 from '!items!dbl7clezSXISzlqE' @ 511 : 1 .. '!items!zGlRtP7zSnkjuuue' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/education/MANIFEST-000232
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/education/MANIFEST-000232
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/education/lost/000154.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/education/lost/000154.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								packs/education/lost/000158.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/education/lost/000158.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								packs/education/lost/000165.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/education/lost/000165.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								packs/education/lost/000172.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/education/lost/000172.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/education/lost/MANIFEST-000156
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/education/lost/MANIFEST-000156
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/education/lost/MANIFEST-000163
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/education/lost/MANIFEST-000163
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/education/lost/MANIFEST-000170
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/education/lost/MANIFEST-000170
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/graces/000205.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/graces/000205.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/graces/000224.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/graces/000224.log
									
									
									
									
									
										Normal file
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000124 | ||||
| MANIFEST-000222 | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2025/02/22-22:33:49.615053 7f59327fc6c0 Recovering log #122 | ||||
| 2025/02/22-22:33:49.625185 7f59327fc6c0 Delete type=3 #120 | ||||
| 2025/02/22-22:33:49.625256 7f59327fc6c0 Delete type=0 #122 | ||||
| 2025/02/22-22:43:19.770657 7f5693fff6c0 Level-0 table #127: started | ||||
| 2025/02/22-22:43:19.770730 7f5693fff6c0 Level-0 table #127: 0 bytes OK | ||||
| 2025/02/22-22:43:19.776949 7f5693fff6c0 Delete type=0 #125 | ||||
| 2025/02/22-22:43:19.797410 7f5693fff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end) | ||||
| 2025/07/09-17:43:09.971163 7f2a0e7fc6c0 Recovering log #220 | ||||
| 2025/07/09-17:43:09.980955 7f2a0e7fc6c0 Delete type=3 #218 | ||||
| 2025/07/09-17:43:09.981011 7f2a0e7fc6c0 Delete type=0 #220 | ||||
| 2025/07/09-18:03:48.811156 7f276ffff6c0 Level-0 table #225: started | ||||
| 2025/07/09-18:03:48.811194 7f276ffff6c0 Level-0 table #225: 0 bytes OK | ||||
| 2025/07/09-18:03:48.817214 7f276ffff6c0 Delete type=0 #223 | ||||
| 2025/07/09-18:03:48.830580 7f276ffff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2025/02/21-17:44:00.049637 7f5930ff96c0 Recovering log #118 | ||||
| 2025/02/21-17:44:00.112380 7f5930ff96c0 Delete type=3 #116 | ||||
| 2025/02/21-17:44:00.112480 7f5930ff96c0 Delete type=0 #118 | ||||
| 2025/02/21-17:47:55.677403 7f5693fff6c0 Level-0 table #123: started | ||||
| 2025/02/21-17:47:55.677440 7f5693fff6c0 Level-0 table #123: 0 bytes OK | ||||
| 2025/02/21-17:47:55.687654 7f5693fff6c0 Delete type=0 #121 | ||||
| 2025/02/21-17:47:55.710065 7f5693fff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end) | ||||
| 2025/07/02-23:06:08.261714 7f0792ffd6c0 Recovering log #216 | ||||
| 2025/07/02-23:06:08.311445 7f0792ffd6c0 Delete type=3 #214 | ||||
| 2025/07/02-23:06:08.311538 7f0792ffd6c0 Delete type=0 #216 | ||||
| 2025/07/02-23:08:13.545827 7f07923ff6c0 Level-0 table #221: started | ||||
| 2025/07/02-23:08:13.545856 7f07923ff6c0 Level-0 table #221: 0 bytes OK | ||||
| 2025/07/02-23:08:13.552104 7f07923ff6c0 Delete type=0 #219 | ||||
| 2025/07/02-23:08:13.565260 7f07923ff6c0 Manual compaction at level-0 from '!items!17mjvwS8R3B6LloG' @ 72057594037927935 : 1 .. '!items!zUYIVOuFpRur9aAR' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/graces/MANIFEST-000222
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/graces/MANIFEST-000222
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/graces/lost/000146.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/graces/lost/000146.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								packs/graces/lost/000150.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/graces/lost/000150.log
									
									
									
									
									
										Normal file
									
								
							Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user