Compare commits
	
		
			19 Commits
		
	
	
		
			fvtt-les-h
			...
			fvtt-les-h
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 44a641a0ca | |||
| 1ad022d193 | |||
| 1c7cf343b1 | |||
| d4b00e3508 | |||
| adc912e6cd | |||
| 51a457ebf6 | |||
| 2e9c558027 | |||
| bcd0758328 | |||
| 2b680a203f | |||
| e3d7874dce | |||
| ab6a5832c0 | |||
| d83a999974 | |||
| b83890a764 | |||
| 5ad3c165e5 | |||
| 2b3e774cbb | |||
| 96f8d2bceb | |||
| e288c90ee4 | |||
| 8916de8613 | |||
| 8598df5a57 | 
							
								
								
									
										
											BIN
										
									
								
								assets/icons/sort.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/icons/sort.webp
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 88 KiB | 
							
								
								
									
										
											BIN
										
									
								
								assets/scenes/8DjkNeeujp2qff1N-thumb.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/scenes/8DjkNeeujp2qff1N-thumb.webp
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 7.2 KiB | 
							
								
								
									
										
											BIN
										
									
								
								assets/scenes/ZjIQTg8S4hLZ4kXN-thumb.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/scenes/ZjIQTg8S4hLZ4kXN-thumb.webp
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 5.8 KiB | 
							
								
								
									
										
											BIN
										
									
								
								assets/scenes/aanMTXv8znDyE6qb-thumb.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/scenes/aanMTXv8znDyE6qb-thumb.webp
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 5.2 KiB | 
							
								
								
									
										
											BIN
										
									
								
								assets/scenes/ypDutqjqZcr7lx6I-thumb.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/scenes/ypDutqjqZcr7lx6I-thumb.webp
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 4.4 KiB | 
							
								
								
									
										33
									
								
								lang/fr.json
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								lang/fr.json
									
									
									
									
									
								
							| @@ -2,22 +2,23 @@ | ||||
|   "TYPES": { | ||||
|     "Actor": { | ||||
|       "personnage": "Personnage", | ||||
|       "PNJ": "PNJ" | ||||
|       "pnj": "PNJ" | ||||
|     }, | ||||
|     "Item": { | ||||
|       "accessoire": "Accessoire", | ||||
|       "arme": "Arme", | ||||
|       "atoutfeerique": "Atout féerique", | ||||
|       "avantage": "Avantage", | ||||
|       "capacitenaturelle": "Capacité naturelle", | ||||
|       "competence": "Compétence", | ||||
|       "contact": "Contact", | ||||
|       "desavantage": "Désavantage", | ||||
|       "equipement": "Equipement", | ||||
|       "fee": "Fée", | ||||
|       "pouvoir": "Pouvoir", | ||||
|       "profil": "Profil", | ||||
|       "protection": "Protection", | ||||
|       "sort": "Sort" | ||||
|     } | ||||
|   }, | ||||
|   "Item": { | ||||
|     "accessoire": "Accessoire", | ||||
|     "arme": "Arme", | ||||
|     "atoutfeerique": "Atout féerique", | ||||
|     "avantage": "Avantage", | ||||
|     "capacitenaturelle": "Capacité naturelle", | ||||
|     "competence": "Compétence", | ||||
|     "contact": "Contact", | ||||
|     "desavantage": "Désavantage", | ||||
|     "equipement": "Equipement", | ||||
|     "fee": "Fée", | ||||
|     "pouvoir": "Pouvoir", | ||||
|     "profil": "Profil", | ||||
|     "protection": "Protection" | ||||
|   } | ||||
| } | ||||
| @@ -12,7 +12,7 @@ export class HeritiersActorPNJSheet extends HeritiersActorSheet { | ||||
|   /** @override */ | ||||
|   static get defaultOptions() { | ||||
|  | ||||
|     return mergeObject(super.defaultOptions, { | ||||
|     return foundry.utils.mergeObject(super.defaultOptions, { | ||||
|       classes: ["fvtt-les-heritiers", "sheet", "actor"], | ||||
|       template: "systems/fvtt-les-heritiers/templates/actor-pnj-sheet.html", | ||||
|       width: 780, | ||||
|   | ||||
| @@ -6,12 +6,12 @@ | ||||
| import { HeritiersUtility } from "./heritiers-utility.js"; | ||||
|  | ||||
| /* -------------------------------------------- */ | ||||
| export class HeritiersActorSheet extends ActorSheet { | ||||
| export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet { | ||||
|  | ||||
|   /** @override */ | ||||
|   static get defaultOptions() { | ||||
|  | ||||
|     return mergeObject(super.defaultOptions, { | ||||
|     return foundry.utils.mergeObject(super.defaultOptions, { | ||||
|       classes: ["fvtt-les-heritiers", "sheet", "actor"], | ||||
|       template: "systems/fvtt-les-heritiers/templates/actor-sheet.html", | ||||
|       width: 780, | ||||
| @@ -24,7 +24,7 @@ export class HeritiersActorSheet extends ActorSheet { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async getData() { | ||||
|     const objectData = duplicate(this.object)     | ||||
|     const objectData = foundry.utils.duplicate(this.object) | ||||
|  | ||||
|     let formData = { | ||||
|       title: this.title, | ||||
| @@ -38,31 +38,33 @@ export class HeritiersActorSheet extends ActorSheet { | ||||
|       effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)), | ||||
|       limited: this.object.limited, | ||||
|       skills: this.actor.getSkills(), | ||||
|       utileSkillsMental :this.actor.organizeUtileSkills("mental"), | ||||
|       utileSkillsPhysical :this.actor.organizeUtileSkills("physical"), | ||||
|       futileSkills :this.actor.organizeFutileSkills(), | ||||
|       utileSkillsMental: this.actor.organizeUtileSkills("mental"), | ||||
|       utileSkillsPhysical: this.actor.organizeUtileSkills("physical"), | ||||
|       competencesMagie: HeritiersUtility.getCompetencesMagie(), | ||||
|       futileSkills: this.actor.organizeFutileSkills(), | ||||
|       contacts: this.actor.organizeContacts(), | ||||
|       armes: duplicate(this.actor.getWeapons()), | ||||
|       monnaies: duplicate(this.actor.getMonnaies()), | ||||
|       pouvoirs: duplicate(this.actor.getPouvoirs()), | ||||
|       fee: duplicate(this.actor.getFee() || {} ), | ||||
|       protections: duplicate(this.actor.getArmors()), | ||||
|       combat: this.actor.getCombatValues(),       | ||||
|       equipements: duplicate(this.actor.getEquipments()), | ||||
|       avantages: duplicate(this.actor.getAvantages()), | ||||
|       atouts: duplicate(this.actor.getAtouts()), | ||||
|       capacites: duplicate(this.actor.getCapacites()), | ||||
|       desavantages: duplicate(this.actor.getDesavantages()), | ||||
|       profils: duplicate(this.actor.getProfils()), | ||||
|       pvMalus: this.actor.getPvMalus(),       | ||||
|       armes: foundry.utils.duplicate(this.actor.getWeapons()), | ||||
|       monnaies: foundry.utils.duplicate(this.actor.getMonnaies()), | ||||
|       pouvoirs: foundry.utils.duplicate(this.actor.getPouvoirs()), | ||||
|       fee: foundry.utils.duplicate(this.actor.getFee() || {}), | ||||
|       protections: foundry.utils.duplicate(this.actor.getArmors()), | ||||
|       combat: this.actor.getCombatValues(), | ||||
|       equipements: foundry.utils.duplicate(this.actor.getEquipments()), | ||||
|       avantages: foundry.utils.duplicate(this.actor.getAvantages()), | ||||
|       atouts: foundry.utils.duplicate(this.actor.getAtouts()), | ||||
|       capacites: foundry.utils.duplicate(this.actor.getCapacites()), | ||||
|       desavantages: foundry.utils.duplicate(this.actor.getDesavantages()), | ||||
|       profils: foundry.utils.duplicate(this.actor.getProfils()), | ||||
|       pvMalus: this.actor.getPvMalus(), | ||||
|       heritage: game.settings.get("fvtt-les-heritiers", "heritiers-heritage"), | ||||
|       initiative: this.actor.getFlag("world", "last-initiative") || -1, | ||||
|       description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}), | ||||
|       revesetranges: await TextEditor.enrichHTML(this.object.system.biodata.revesetranges, {async: true}), | ||||
|       secretsdecouverts: await TextEditor.enrichHTML(this.object.system.biodata.secretsdecouverts, {async: true}), | ||||
|       questions: await TextEditor.enrichHTML(this.object.system.biodata.questions, {async: true}), | ||||
|       habitat: await TextEditor.enrichHTML(this.object.system.biodata.habitat, {async: true}), | ||||
|       playernotes: await TextEditor.enrichHTML(this.object.system.biodata.playernotes, {async: true}), | ||||
|       description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, { async: true }), | ||||
|       revesetranges: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.revesetranges, { async: true }), | ||||
|       secretsdecouverts: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.secretsdecouverts, { async: true }), | ||||
|       questions: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.questions, { async: true }), | ||||
|       habitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.habitat, { async: true }), | ||||
|       playernotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.playernotes, { async: true }), | ||||
|       magieList: this.actor.prepareMagie(), | ||||
|       options: this.options, | ||||
|       owner: this.document.isOwner, | ||||
|       editScore: this.options.editScore, | ||||
| @@ -77,19 +79,42 @@ export class HeritiersActorSheet extends ActorSheet { | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   getCelluleTalents( )  { | ||||
|     let talents = [] | ||||
|     for(let cellule of game.actors) { | ||||
|       if (cellule.type == "cellule") { | ||||
|         let found = cellule.system.members.find( it => it.id == this.actor.id) | ||||
|         if (found) { | ||||
|           talents = talents.concat( cellule.getTalents() ) | ||||
|   dialogRecupUsage() { | ||||
|     new Dialog({ | ||||
|       title: "Récupération des Points d'Usage", | ||||
|       content: "<p>Combien de Points d'Usage souhaitez-vous récupérer ?</p>", | ||||
|       buttons: { | ||||
|         one: { | ||||
|           icon: '<i class="fas fa-check"></i>', | ||||
|           label: "1 Point", | ||||
|           callback: () => { | ||||
|             this.actor.recupUsage(1) | ||||
|           } | ||||
|         }, | ||||
|         two: { | ||||
|           icon: '<i class="fas fa-check"></i>', | ||||
|           label: "2 Points", | ||||
|           callback: () => { | ||||
|             this.actor.recupUsage(2) | ||||
|           } | ||||
|         }, | ||||
|         four: { | ||||
|           icon: '<i class="fas fa-check"></i>', | ||||
|           label: "4 Points", | ||||
|           callback: () => { | ||||
|             this.actor.recupUsage(4) | ||||
|           } | ||||
|         }, | ||||
|         all: { | ||||
|           icon: '<i class="fas fa-check"></i>', | ||||
|           label: "Tous les Points", | ||||
|           callback: () => { | ||||
|             this.actor.recupUsage(100) | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     return talents | ||||
|     }).render(true) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   /** @override */ | ||||
|   activateListeners(html) { | ||||
| @@ -97,14 +122,14 @@ export class HeritiersActorSheet extends ActorSheet { | ||||
|  | ||||
|     // Everything below here is only needed if the sheet is editable | ||||
|     if (!this.options.editable) return; | ||||
|      | ||||
|  | ||||
|     // Update Inventory Item | ||||
|     html.find('.item-edit').click(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".item") | ||||
|       let itemId = li.data("item-id") | ||||
|       const item = this.actor.items.get( itemId ) | ||||
|       const item = this.actor.items.get(itemId) | ||||
|       item.sheet.render(true) | ||||
|     })       | ||||
|     }) | ||||
|     // Delete Inventory Item | ||||
|     html.find('.item-delete').click(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".item"); | ||||
| @@ -112,8 +137,8 @@ export class HeritiersActorSheet extends ActorSheet { | ||||
|     }) | ||||
|     html.find('.edit-item-data').change(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".item") | ||||
|       let itemId    = li.data("item-id") | ||||
|       let itemType  = li.data("item-type") | ||||
|       let itemId = li.data("item-id") | ||||
|       let itemType = li.data("item-type") | ||||
|       let itemField = $(ev.currentTarget).data("item-field") | ||||
|       let dataType = $(ev.currentTarget).data("dtype") | ||||
|       let value = ev.currentTarget.value | ||||
| @@ -126,17 +151,17 @@ export class HeritiersActorSheet extends ActorSheet { | ||||
|       let value = Number($(event.currentTarget).data("adversite-value")) | ||||
|       this.actor.incDecAdversite(adv, value) | ||||
|     }) | ||||
|      | ||||
|  | ||||
|     html.find('.quantity-modify').click(event => { | ||||
|       const li = $(event.currentTarget).parents(".item") | ||||
|       const value = Number($(event.currentTarget).data("quantite-value")) | ||||
|       this.actor.incDecQuantity( li.data("item-id"), value ); | ||||
|       this.actor.incDecQuantity(li.data("item-id"), value); | ||||
|     }) | ||||
|  | ||||
|     html.find('.roll-initiative').click((event) => { | ||||
|       this.actor.rollInitiative() | ||||
|     }) | ||||
|      | ||||
|  | ||||
|     html.find('.roll-carac').click((event) => { | ||||
|       const key = $(event.currentTarget).data("key") | ||||
|       this.actor.rollCarac(key, false) | ||||
| @@ -144,60 +169,76 @@ export class HeritiersActorSheet extends ActorSheet { | ||||
|     html.find('.roll-rang').click((event) => { | ||||
|       const key = $(event.currentTarget).data("rang-key") | ||||
|       this.actor.rollRang(key, false) | ||||
|     })     | ||||
|     }) | ||||
|     html.find('.roll-root-competence').click((event) => { | ||||
|       const compKey = $(event.currentTarget).data("attr-key") | ||||
|       this.actor.rollRootCompetence(compKey) | ||||
|     }) | ||||
|     html.find('.roll-competence').click((event) => { | ||||
|       const li = $(event.currentTarget).parents(".item") | ||||
|       let compId  = li.data("item-id") | ||||
|       let compId = li.data("item-id") | ||||
|       this.actor.rollCompetence(compId) | ||||
|     }) | ||||
|     html.find('.roll-sort').click((event) => { | ||||
|       const li = $(event.currentTarget).parents(".item") | ||||
|       let sortId = li.data("item-id") | ||||
|       this.actor.rollSort(sortId) | ||||
|     }) | ||||
|     html.find('.roll-attaque-arme').click((event) => { | ||||
|       const li = $(event.currentTarget).parents(".item") | ||||
|       let armeId  = li.data("item-id") | ||||
|       let armeId = li.data("item-id") | ||||
|       this.actor.rollAttaqueArme(armeId) | ||||
|     }) | ||||
|     html.find('.roll-attaque-brutale-arme').click((event) => { | ||||
|       const li = $(event.currentTarget).parents(".item") | ||||
|       let armeId  = li.data("item-id") | ||||
|       let armeId = li.data("item-id") | ||||
|       this.actor.rollAttaqueBrutaleArme(armeId) | ||||
|     })     | ||||
|     }) | ||||
|     html.find('.roll-attaque-charge-arme').click((event) => { | ||||
|       const li = $(event.currentTarget).parents(".item") | ||||
|       let armeId  = li.data("item-id") | ||||
|       let armeId = li.data("item-id") | ||||
|       this.actor.rollAttaqueChargeArme(armeId) | ||||
|     }) | ||||
|     html.find('.roll-assomer-arme').click((event) => { | ||||
|       const li = $(event.currentTarget).parents(".item") | ||||
|       let armeId  = li.data("item-id") | ||||
|       let armeId = li.data("item-id") | ||||
|       this.actor.rollAssomerArme(armeId) | ||||
|     }) | ||||
|      | ||||
|  | ||||
|     html.find('.roll-pouvoir').click((event) => { | ||||
|       const li = $(event.currentTarget).parents(".item") | ||||
|       let pouvoirId = li.data("item-id") | ||||
|       this.actor.rollPouvoir(pouvoirId) | ||||
|     }) | ||||
|      | ||||
|     html.find('.dialog-recup-usage').click((event) => { | ||||
|       this.dialogRecupUsage() | ||||
|     }) | ||||
|  | ||||
|     html.find('.item-add').click((event) => { | ||||
|       const itemType = $(event.currentTarget).data("type") | ||||
|       if (itemType == "sort") { | ||||
|         // Get data-sort-competence | ||||
|         let sortCompetence = $(event.currentTarget).data("sort-competence"); | ||||
|         if (sortCompetence) { | ||||
|           this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType} de ${sortCompetence}`, type: itemType, system: { competence: sortCompetence } }], { renderSheet: true }) | ||||
|           return | ||||
|         } | ||||
|       } | ||||
|       this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true }) | ||||
|     }) | ||||
|      | ||||
|  | ||||
|     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.actor.equipItem(li.data("item-id")); | ||||
|       this.render(true); | ||||
|     }); | ||||
|  | ||||
|   } | ||||
|    | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   /** @override */ | ||||
|   setPosition(options = {}) { | ||||
|   | ||||
| @@ -17,8 +17,8 @@ export class HeritiersActor 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. | ||||
| @@ -41,7 +41,7 @@ export class HeritiersActor extends Actor { | ||||
|       const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences") | ||||
|       data.items = [] | ||||
|       for (let skill of skills) { | ||||
|         if (skill.system.categorie == "utile") { | ||||
|         if (skill.system.categorie == "utile" && skill.system.profil != "magie") { | ||||
|           data.items.push(skill.toObject()) | ||||
|         } | ||||
|       } | ||||
| @@ -54,7 +54,7 @@ export class HeritiersActor extends Actor { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   prepareArme(arme) { | ||||
|     arme = duplicate(arme) | ||||
|     arme = foundry.utils.duplicate(arme) | ||||
|     arme.system.isMelee = HeritiersUtility.isArmeMelee(arme) | ||||
|     return arme | ||||
|   } | ||||
| @@ -86,7 +86,7 @@ export class HeritiersActor extends Actor { | ||||
|  | ||||
|   /* -----------------------  --------------------- */ | ||||
|   addMember(actorId) { | ||||
|     let members = duplicate(this.system.members) | ||||
|     let members = foundry.utils.duplicate(this.system.members) | ||||
|     members.push({ id: actorId }) | ||||
|     this.update({ 'system.members': members }) | ||||
|   } | ||||
| @@ -135,13 +135,60 @@ export class HeritiersActor extends Actor { | ||||
|     return this.getItemSorted(["profil"]) | ||||
|   } | ||||
|   getPouvoirs() { | ||||
|     return this.getItemSorted(["pouvoir"]) | ||||
|     let pouvoirs = [] | ||||
|     for (let item of this.items) { | ||||
|       if (item.type == "pouvoir") { | ||||
|         let itemObj = foundry.utils.duplicate(item) | ||||
|         itemObj.maxUsage = this.getPouvoirUsageMax(item) | ||||
|         pouvoirs.push(itemObj) | ||||
|       } | ||||
|     } | ||||
|     HeritiersUtility.sortArrayObjectsByName(pouvoirs) | ||||
|     return pouvoirs | ||||
|   } | ||||
|   getSorts() { | ||||
|     return this.getItemSorted(["sort"]) | ||||
|   } | ||||
|   getCompetencesMagie() { | ||||
|     let comp = [] | ||||
|     for (let item of this.items) { | ||||
|       if (item.type == "competence" && item.system.profil == "magie") { | ||||
|         let itemObj = foundry.utils.duplicate(item) | ||||
|         comp.push(itemObj) | ||||
|       } | ||||
|     } | ||||
|     HeritiersUtility.sortArrayObjectsByName(comp) | ||||
|     return comp | ||||
|   } | ||||
|  | ||||
|   prepareMagie() { | ||||
|     let magieList = [] | ||||
|     for (let item of this.items) { | ||||
|       if (item.type == "competence" && item.system.profil == "magie") { | ||||
|         let magie = {} | ||||
|         magie.name = item.name | ||||
|         magie.competence = foundry.utils.duplicate(item) | ||||
|         magie.rang = Math.round(item.system.niveau / 2); | ||||
|         magie.rangGenericName = game.system.lesheritiers.config.rangName[magie.rang]; | ||||
|         console.log("Magie", item.name, item.system.niveau, magie.rang, magie.rangGenericName) | ||||
|         magie.rangSpecificName = game.system.lesheritiers.config.rangNameSpecific[item.name][magie.rangGenericName]; | ||||
|         magie.sorts = [] | ||||
|         for (let sort of this.items) { | ||||
|           if (sort.type == "sort" && sort.system.competence == item.name) { | ||||
|             magie.sorts.push(sort) | ||||
|           } | ||||
|         } | ||||
|         magieList.push(magie) | ||||
|       } | ||||
|     } | ||||
|     return magieList | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   getSkills() { | ||||
|     let comp = [] | ||||
|     for (let item of this.items) { | ||||
|       item = duplicate(item) | ||||
|       item = foundry.utils.duplicate(item) | ||||
|       if (item.type == "competence") { | ||||
|         comp.push(item) | ||||
|       } | ||||
| @@ -161,6 +208,28 @@ export class HeritiersActor extends Actor { | ||||
|     item.specList = specList.toString() | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   organizeMagicSkills() { | ||||
|     let comp = {} | ||||
|     for (let key in game.system.lesheritiers.config.competenceProfil) { | ||||
|       if (game.system.lesheritiers.config.competenceProfil[key].kind == "magical") | ||||
|         comp[key] = { skills: [], niveau: 0 } | ||||
|     } | ||||
|     for (let item of this.items) { | ||||
|       if (item.type == "competence") { | ||||
|         if (item.system.categorie == "utile" && comp[item.system.profil]) { | ||||
|           this.prepareUtileSkill(item) | ||||
|           comp[item.system.profil].skills.push(item) | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     for (let key in comp) { | ||||
|       HeritiersUtility.sortArrayObjectsByName(comp[key].skills) | ||||
|     } | ||||
|     return Object.fromEntries(Object.entries(comp).sort()) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   organizeUtileSkills(kind = "mental") { | ||||
|     let comp = {} | ||||
| @@ -182,6 +251,7 @@ export class HeritiersActor extends Actor { | ||||
|     } | ||||
|     return Object.fromEntries(Object.entries(comp).sort()) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   organizeContacts() { | ||||
|     let contactList = {} | ||||
| @@ -248,9 +318,39 @@ export class HeritiersActor extends Actor { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async prepareData() { | ||||
|  | ||||
|     let pvMax = (this.system.caracteristiques.con.rang * 3) + 9 + this.system.pv.mod | ||||
|     if (this.system.pv.max != pvMax) { | ||||
|       this.update({ 'system.pv.max': pvMax }) | ||||
|     } | ||||
|     if (this.system.biodata.magie || this.type == "pnj") { | ||||
|       let pointsAmes = this.system.caracteristiques.esp.rang + this.system.caracteristiques.san.rang + this.getMaxRangMagie() | ||||
|       if (this.system.magie.pointsame.max != pointsAmes) { | ||||
|         this.update({ 'system.magie.pointsame.max': pointsAmes }) | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     super.prepareData(); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   getMaxRangMagie() { | ||||
|     let niv = 0 | ||||
|     let bestMagie | ||||
|     for (let comp of this.items) { | ||||
|       if (comp.type == "competence" && comp.system.profil == "magie") { | ||||
|         if (comp.system.niveau > niv) { | ||||
|           bestMagie = comp | ||||
|           niv = comp.system.niveau | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     if (bestMagie) { | ||||
|       return Math.round(bestMagie.system.niveau / 2) | ||||
|     } | ||||
|     return 0 | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   prepareDerivedData() { | ||||
|  | ||||
| @@ -270,7 +370,7 @@ export class HeritiersActor extends Actor { | ||||
|   getItemById(id) { | ||||
|     let item = this.items.find(item => item.id == id); | ||||
|     if (item) { | ||||
|       item = duplicate(item) | ||||
|       item = foundry.utils.duplicate(item) | ||||
|     } | ||||
|     return item; | ||||
|   } | ||||
| @@ -328,7 +428,7 @@ export class HeritiersActor extends Actor { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   getCarac(attrKey) { | ||||
|     return duplicate(this.system.caracteristiques) | ||||
|     return foundry.utils.duplicate(this.system.caracteristiques) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
| @@ -349,13 +449,13 @@ export class HeritiersActor extends Actor { | ||||
|   getSubActors() { | ||||
|     let subActors = []; | ||||
|     for (let id of this.system.subactors) { | ||||
|       subActors.push(duplicate(game.actors.get(id))); | ||||
|       subActors.push(foundry.utils.duplicate(game.actors.get(id))); | ||||
|     } | ||||
|     return subActors; | ||||
|   } | ||||
|   /* -------------------------------------------- */ | ||||
|   async addSubActor(subActorId) { | ||||
|     let subActors = duplicate(this.system.subactors); | ||||
|     let subActors = foundry.utils.duplicate(this.system.subactors); | ||||
|     subActors.push(subActorId); | ||||
|     await this.update({ 'system.subactors': subActors }); | ||||
|   } | ||||
| @@ -377,11 +477,12 @@ export class HeritiersActor extends Actor { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async incDecAdversite(adv, incDec = 0) { | ||||
|     let adversite = duplicate(this.system.adversite) | ||||
|     let adversite = foundry.utils.duplicate(this.system.adversite) | ||||
|     adversite[adv] += Number(incDec) | ||||
|     adversite[adv] = Math.max(adversite[adv], 0) | ||||
|     this.update({ 'system.adversite': adversite }) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async incDecQuantity(objetId, incDec = 0) { | ||||
|     let objetQ = this.items.get(objetId) | ||||
| @@ -424,7 +525,7 @@ export class HeritiersActor extends Actor { | ||||
|   /* -------------------------------------------- */ | ||||
|   async setPredilectionUsed(compId, predIdx) { | ||||
|     let comp = this.items.get(compId) | ||||
|     let pred = duplicate(comp.system.predilections) | ||||
|     let pred = foundry.utils.duplicate(comp.system.predilections) | ||||
|     pred[predIdx].used = true | ||||
|     await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }]) | ||||
|   } | ||||
| @@ -446,7 +547,7 @@ export class HeritiersActor extends Actor { | ||||
|       } | ||||
|       if (arme.system.totalDefensif > maxDef) { | ||||
|         maxDef = arme.system.totalDefensif | ||||
|         bestArme = duplicate(arme) | ||||
|         bestArme = foundry.utils.duplicate(arme) | ||||
|       } | ||||
|     } | ||||
|     return bestArme | ||||
| @@ -461,7 +562,7 @@ export class HeritiersActor extends Actor { | ||||
|         for (let auto of talent.system.automations) { | ||||
|           if (auto.eventtype === "prepare-roll") { | ||||
|             if (auto.competence.toLowerCase() == competence.name.toLowerCase()) { | ||||
|               talent = duplicate(talent) | ||||
|               talent = foundry.utils.duplicate(talent) | ||||
|               talent.system.bonus = auto.bonus | ||||
|               talent.system.baCost = auto.baCost | ||||
|               talents.push(talent) | ||||
| @@ -523,6 +624,7 @@ export class HeritiersActor extends Actor { | ||||
|     } | ||||
|     return undefined | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   getCommonRollData(compId = undefined, compName = undefined) { | ||||
|     let rollData = HeritiersUtility.getBasicRollData() | ||||
| @@ -538,15 +640,16 @@ export class HeritiersActor extends Actor { | ||||
|     rollData.useTricherie = false | ||||
|     rollData.useSpecialite = false | ||||
|     rollData.useHeritage = false | ||||
|     rollData.pouvoirPointsUsage = 1 | ||||
|     rollData.rulesMalus.push(this.getPvMalus()) | ||||
|  | ||||
|     if (compId) { | ||||
|       rollData.competence = duplicate(this.items.get(compId) || {}) | ||||
|       rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {}) | ||||
|       this.prepareUtileSkill(rollData.competence) | ||||
|       rollData.actionImg = rollData.competence?.img | ||||
|     } | ||||
|     if (compName) { | ||||
|       rollData.competence = duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {}) | ||||
|       rollData.competence = foundry.utils.duplicate(this.items.find(item => item.name.toLowerCase() == compName.toLowerCase()) || {}) | ||||
|       if (rollData.competence?.name) { | ||||
|         this.prepareUtileSkill(rollData.competence) | ||||
|         rollData.actionImg = rollData.competence?.img | ||||
| @@ -610,11 +713,67 @@ export class HeritiersActor extends Actor { | ||||
|     rollDialog.render(true) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   inDecCarac(key, incDec) { | ||||
|     let carac = this.system.caracteristiques[key] | ||||
|     carac.value += incDec | ||||
|     if (carac.value < 0 || carac.value > carac.max) { | ||||
|       ui.notifications.warn("Pas assez de points dans cette caractéristique !") | ||||
|       return false | ||||
|     } | ||||
|     carac.value = Math.max(carac.value, 0) | ||||
|     carac.value = Math.min(carac.value, carac.max) | ||||
|     this.update({ [`system.caracteristiques.${key}`]: carac }) | ||||
|     return true | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async rollSort(sortId) { | ||||
|     let sort = this.items.get(sortId) | ||||
|     let comp = this.items.find(it => it.type == "competence" && it.name.toLowerCase() == sort.system.competence.toLowerCase()) | ||||
|     if (!comp) { | ||||
|       ui.notifications.warn("Compétence de magie associée non trouvée !") | ||||
|       return | ||||
|     } | ||||
|  | ||||
|     let rollData = this.getCommonRollData(comp.id) | ||||
|     rollData.mode = "sort" | ||||
|     rollData.sort = foundry.utils.duplicate(sort) | ||||
|     rollData.sdValue = HeritiersUtility.getSDSortValue(Number(sort.system.niveau)) | ||||
|     rollData.sortPointsAme = Number(sort.system.niveau) | ||||
|     if (rollData.sortPointsAme > this.system.magie.pointsame.value) { | ||||
|       // Vérifier si au moins 1 point d'Esprit est disponible | ||||
|       if (this.system.caracteristiques.esp.value < 1) { | ||||
|         ui.notifications.warn("Pas assez de Points d'Esprit ni de Points d'Ame pour lancer ce sort (requis: 1, disponible: " + this.system.caracteristiques.esp.value + ")") | ||||
|         return | ||||
|       } else { | ||||
|         rollData.spendEsprit = true | ||||
|         ui.notifications.warn(`Vous n'avez pas assez de Points d'Ame pour lancer ce sort (requis: ${rollData.sortPointsAme}, disponible: ${this.system.magie.pointsame.value}). Un Point d'Esprit sera utilisé à la place si vous effectuez le lancer.`) | ||||
|       } | ||||
|     } | ||||
|      | ||||
|     if (sort.system.carac2 != "none") { | ||||
|       // get the best carac between carac1 and carac2 | ||||
|       if (this.system.caracteristiques[sort.system.carac1].value > this.system.caracteristiques[sort.system.carac2].value) { | ||||
|         rollData.caracKey = sort.system.carac1 | ||||
|       } else { | ||||
|         rollData.caracKey = sort.system.carac2 | ||||
|       } | ||||
|       rollData.caracMessage = "Ce sort peut être lancé avec " + game.system.lesheritiers.config.caracList[sort.system.carac1] + " ou " + game.system.lesheritiers.config.caracList[sort.system.carac2] + ". La meilleure caractéristique a été selectionnée." | ||||
|     } else { | ||||
|       rollData.caracKey = sort.system.carac1 | ||||
|     } | ||||
|     console.log("RollData", rollData) | ||||
|     let rollDialog = await HeritiersRollDialog.create(this, rollData) | ||||
|     rollDialog.render(true) | ||||
|   } | ||||
|  | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async rollAttaqueArme(armeId) { | ||||
|     let arme = this.items.get(armeId) | ||||
|     if (arme) { | ||||
|       arme = duplicate(arme) | ||||
|       arme = foundry.utils.duplicate(arme) | ||||
|       arme.system.isMelee = HeritiersUtility.isArmeMelee(arme) | ||||
|       let competenceName = "Tir" | ||||
|       let key = "prec" | ||||
| @@ -647,7 +806,7 @@ export class HeritiersActor extends Actor { | ||||
|       let rollData = this.getCommonRollData(undefined, competenceName) | ||||
|       rollData.carac = this.system.caracteristiques[key] | ||||
|       rollData.caracKey = key | ||||
|       rollData.arme = duplicate(arme) | ||||
|       rollData.arme = foundry.utils.duplicate(arme) | ||||
|       rollData.mode = "attaquebrutale" | ||||
|       rollData.armes = this.getOtherMeleeWeapons(arme) | ||||
|       rollData.rulesMalus.push({ name: "Attaque brutale", value: -2 }) | ||||
| @@ -665,7 +824,7 @@ export class HeritiersActor extends Actor { | ||||
|       let rollData = this.getCommonRollData(undefined, pireCompetence.name) | ||||
|       rollData.carac = this.system.caracteristiques[key] | ||||
|       rollData.caracKey = key | ||||
|       rollData.arme = duplicate(arme) | ||||
|       rollData.arme = foundry.utils.duplicate(arme) | ||||
|       rollData.armes = this.getOtherMeleeWeapons(arme) | ||||
|       rollData.mode = "attaquecharge" | ||||
|       let rollDialog = await HeritiersRollDialog.create(this, rollData) | ||||
| @@ -682,7 +841,7 @@ export class HeritiersActor extends Actor { | ||||
|       let rollData = this.getCommonRollData(undefined, competenceName) | ||||
|       rollData.carac = this.system.caracteristiques["agi"] | ||||
|       rollData.caracKey = "agi" | ||||
|       rollData.arme = duplicate(arme) | ||||
|       rollData.arme = foundry.utils.duplicate(arme) | ||||
|       rollData.mode = "assommer" | ||||
|       if (rollData.defenderTokenId) { | ||||
|         rollData.cacheDifficulte = true | ||||
| @@ -692,22 +851,153 @@ export class HeritiersActor extends Actor { | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   pouvoirPassifDialog(pouvoir) { | ||||
|     let rollData = this.getCommonRollData() | ||||
|     rollData.pouvoir = pouvoir | ||||
|     rollData.mode = "pouvoirpassif" | ||||
|     rollData.pouvoirPointsUsage = 0 | ||||
|     rollData.noRoll = true | ||||
|  | ||||
|     let d = new Dialog({ | ||||
|       title: "Activer le pouvoir passif " + pouvoir.name, | ||||
|       content: "<p>Choisissez le nombre de Points d'Usage</p>", | ||||
|       buttons: { | ||||
|         one: { | ||||
|           icon: '<i class="fas fa-check"></i>', | ||||
|           label: "1 Point d'Usage", | ||||
|           callback: () => { | ||||
|             rollData.pouvoirPointsUsage = 1; | ||||
|             HeritiersUtility.rollHeritiers(rollData); | ||||
|           } | ||||
|         }, | ||||
|         two: { | ||||
|           icon: '<i class="fas fa-check"></i>', | ||||
|           label: "2 Points d'Usage", | ||||
|           callback: () => { | ||||
|             rollData.pouvoirPointsUsage = 2; | ||||
|             HeritiersUtility.rollHeritiers(rollData); | ||||
|           } | ||||
|         }, | ||||
|         three: { | ||||
|           icon: '<i class="fas fa-check"></i>', | ||||
|           label: "3 Points d'Usage", | ||||
|           callback: () => { | ||||
|             rollData.pouvoirPointsUsage = 3; | ||||
|             HeritiersUtility.rollHeritiers(rollData); | ||||
|           } | ||||
|         }, | ||||
|         four: { | ||||
|           icon: '<i class="fas fa-check"></i>', | ||||
|           label: "4 Points d'Usage", | ||||
|           callback: () => { | ||||
|             rollData.pouvoirPointsUsage = 4; | ||||
|             HeritiersUtility.rollHeritiers(rollData); | ||||
|           } | ||||
|         }, | ||||
|         close: { | ||||
|           icon: '<i class="fas fa-times"></i>', | ||||
|           label: "Annuler", | ||||
|           callback: () => { | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       default: "one", | ||||
|       render: html => console.log("Pouvoir passif"), | ||||
|       close: html => console.log("No option") | ||||
|     }); | ||||
|     d.render(true); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async rollPouvoir(pouvoirId) { | ||||
|     let pouvoir = this.items.get(pouvoirId) | ||||
|     if (pouvoir) { | ||||
|       let rollData = this.getCommonRollData(undefined, undefined) | ||||
|       if (pouvoir.system.feeriemasque != "autre") { | ||||
|         rollData.pouvoirBase = duplicate(this.system.rang[pouvoir.system.feeriemasque.toLowerCase()]) | ||||
|         rollData.pouvoirBase.label = "Féerie" | ||||
|         rollData.carac = duplicate(this.system.caracteristiques[pouvoir.system.carac]) | ||||
|         rollData.caracKey = pouvoir.system.carac | ||||
|       if (pouvoir.system.pouvoirtype == "passif") { | ||||
|         this.pouvoirPassifDialog(pouvoir) | ||||
|         return | ||||
|       } | ||||
|       rollData.pouvoir = duplicate(pouvoir) | ||||
|  | ||||
|       let rollData = this.getCommonRollData(undefined, undefined) | ||||
|  | ||||
|       rollData.pouvoirMaxUsage = this.getPouvoirUsageMax(pouvoir) | ||||
|       rollData.pouvoir = foundry.utils.duplicate(pouvoir) | ||||
|       rollData.mode = "pouvoir" | ||||
|  | ||||
|       if (pouvoir.system.feeriemasque != "autre") { | ||||
|         rollData.pouvoirBase = foundry.utils.duplicate(this.system.rang[pouvoir.system.feeriemasque.toLowerCase()]) | ||||
|         rollData.pouvoirBase.label = "Féerie" | ||||
|         if (pouvoir.system.istest && !pouvoir.system.carac) { | ||||
|           ui.notifications.warn("Le pouvoir actif " + pouvoir.name + " n'a pas de caractéristique associée") | ||||
|         } | ||||
|         if (pouvoir.system.istest) { | ||||
|           rollData.carac = foundry.utils.duplicate(this.system.caracteristiques[pouvoir.system.carac]) | ||||
|           rollData.caracKey = pouvoir.system.carac | ||||
|         } else { | ||||
|           rollData.noRoll = true | ||||
|           HeritiersUtility.rollHeritiers(rollData); | ||||
|           return; | ||||
|           //this.incDecPointsUsage(pouvoir.id, -rollData.pouvoirPointsUsage) | ||||
|           //ui.notifications.warn("Le pouvoir actif " + pouvoir.name + " a été utilisé, dépense de " + pouvoirPointsUsage + " points d'usage") | ||||
|         } | ||||
|       } | ||||
|       let rollDialog = await HeritiersRollDialog.create(this, rollData) | ||||
|       rollDialog.render(true) | ||||
|     } | ||||
|  | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   incDecPointsAme(value) { | ||||
|     let newValue = this.system.magie.pointsame.value + value | ||||
|     newValue = Math.max(newValue, 0) | ||||
|     newValue = Math.min(newValue, this.system.magie.pointsame.max) | ||||
|     this.update({ 'system.magie.pointsame.value': newValue }) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   incDecPV(value) { | ||||
|     let newValue = this.system.pv.value + value | ||||
|     newValue = Math.max(newValue, 0) | ||||
|     newValue = Math.min(newValue, this.system.pv.max) | ||||
|     this.update({ 'system.pv.value': newValue }) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   incDecPointsUsage(pouvoirId, value) { | ||||
|     let pouvoir = this.items.get(pouvoirId) | ||||
|     let newValue = pouvoir.system.pointsusagecourant + value | ||||
|     newValue = Math.max(newValue, 0) | ||||
|     newValue = Math.min(newValue, this.getPouvoirUsageMax(pouvoir)) | ||||
|     this.updateEmbeddedDocuments('Item', [{ _id: pouvoirId, 'system.pointsusagecourant': newValue }]) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   getPouvoirUsage(pouvoirId) { | ||||
|     let pouvoir = this.items.get(pouvoirId) | ||||
|     return pouvoir.system.pointsusagecourant | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   getPouvoirUsageMax(pouvoir) { | ||||
|     if (pouvoir.system.masquetype == "masque") { | ||||
|       return this.system.rang.masque.value | ||||
|     } | ||||
|     return this.system.rang.feerie.value | ||||
|   } | ||||
|   /* -------------------------------------------- */ | ||||
|   recupUsage(value) { | ||||
|     let updates = [] | ||||
|     for (let pouvoir of this.items) { | ||||
|       if (pouvoir.type == "pouvoir") { | ||||
|         let newValue = pouvoir.system.pointsusagecourant + value | ||||
|         newValue = Math.max(newValue, 0) | ||||
|         newValue = Math.min(newValue, this.getPouvoirUsageMax(pouvoir)) | ||||
|         updates.push({ _id: pouvoir.id, 'system.pointsusagecourant': newValue }) | ||||
|       } | ||||
|     } | ||||
|     if (updates.length > 0) { | ||||
|       this.updateEmbeddedDocuments('Item', updates) | ||||
|     } | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -12,25 +12,26 @@ export const HERITIERS_CONFIG = { | ||||
|     "san": "Sang-Froid" | ||||
|   }, | ||||
|  | ||||
|   competenceCategorie  : { | ||||
|   competenceCategorie: { | ||||
|     "utile": "Utile", | ||||
|     "futile": "Futile" | ||||
|   }, | ||||
|    | ||||
|  | ||||
|   contactType: { | ||||
|     contact: "Contact",  | ||||
|     contact: "Contact", | ||||
|     allie: "Allié", | ||||
|     ennemi: "Ennemi", | ||||
|     interet: "Personne d'interêt" | ||||
|   }, | ||||
|  | ||||
|   competenceProfil  : { | ||||
|     "aventurier": {kind: "physical", name: "Aventurier"}, | ||||
|     "roublard": {kind: "physical",name: "Roublard"}, | ||||
|     "combattant": {kind: "physical",name:"Combattant"}, | ||||
|     "erudit": {kind: "mental",name:"Erudit"}, | ||||
|     "savant": {kind: "mental",name:"Savant"}, | ||||
|     "gentleman": {kind: "mental",name:"Gentleman"} | ||||
|   competenceProfil: { | ||||
|     "aventurier": { kind: "physical", name: "Aventurier" }, | ||||
|     "roublard": { kind: "physical", name: "Roublard" }, | ||||
|     "combattant": { kind: "physical", name: "Combattant" }, | ||||
|     "erudit": { kind: "mental", name: "Erudit" }, | ||||
|     "savant": { kind: "mental", name: "Savant" }, | ||||
|     "gentleman": { kind: "mental", name: "Gentleman" }, | ||||
|     "magie": { kind: "magical", name: "Magie" }, | ||||
|   }, | ||||
|   baseTestPouvoir: { | ||||
|     "feerie": "Féerie", | ||||
| @@ -52,7 +53,7 @@ export const HERITIERS_CONFIG = { | ||||
|   }, | ||||
|   statutMasque: { | ||||
|     "masque": "Masqué", | ||||
|     "demasque":"Démasqué" | ||||
|     "demasque": "Démasqué" | ||||
|   }, | ||||
|   niveauPouvoir: { | ||||
|     "normal": "Normal", | ||||
| @@ -65,32 +66,32 @@ export const HERITIERS_CONFIG = { | ||||
|   }, | ||||
|   seuilsDifficulte: { | ||||
|     "-1": "Aucun/Non applicable", | ||||
|     "5": "Enfantine", | ||||
|     "6": "Triviale", | ||||
|     "7": "Moins Triviale", | ||||
|     "8": "Aisée", | ||||
|     "7": "Moins Aisée", | ||||
|     "10": "Normale", | ||||
|     "11": "Moins Normale", | ||||
|     "12": "Compliquée", | ||||
|     "13": "Plus Compliquée", | ||||
|     "14": "Difficile", | ||||
|     "15": "Plus Difficile", | ||||
|     "16": "Très Difficile", | ||||
|     "17": "Très Très Difficile", | ||||
|     "18": "Critique", | ||||
|     "19": "Plus Critique", | ||||
|     "20": "Insurmontable", | ||||
|     "20": "Très Insurmontable", | ||||
|     "22": "Surhumaine", | ||||
|     "23": "Très Surhumaine", | ||||
|     "24": "Epique", | ||||
|     "25": "Plus Epique", | ||||
|     "26": "Légendaire", | ||||
|     "26": "Très Légendaire", | ||||
|     "28": "Mythique", | ||||
|     "29": "Plus Mythique", | ||||
|     "30": "Divine" | ||||
|     "5": "Enfantine (5)", | ||||
|     "6": "Triviale (6)", | ||||
|     "7": "Moins Triviale (7)", | ||||
|     "8": "Aisée (8)", | ||||
|     "9": "Moins Aisée (9)", | ||||
|     "10": "Normale (10)", | ||||
|     "11": "Moins Normale (11)", | ||||
|     "12": "Compliquée (12)", | ||||
|     "13": "Plus Compliquée (13)", | ||||
|     "14": "Difficile (14)", | ||||
|     "15": "Plus Difficile (15)", | ||||
|     "16": "Très Difficile (16)", | ||||
|     "17": "Très Très Difficile (17)", | ||||
|     "18": "Critique (18)", | ||||
|     "19": "Plus Critique (19)", | ||||
|     "20": "Insurmontable (20)", | ||||
|     "21": "Très Insurmontable (21)", | ||||
|     "22": "Surhumaine (22)", | ||||
|     "23": "Très Surhumaine (23)", | ||||
|     "24": "Epique (24)", | ||||
|     "25": "Plus Epique (25)", | ||||
|     "26": "Légendaire (26)", | ||||
|     "27": "Très Légendaire (27)", | ||||
|     "28": "Mythique (28)", | ||||
|     "29": "Plus Mythique (29)", | ||||
|     "30": "Divine (30)" | ||||
|   }, | ||||
|  | ||||
|   attaqueCible: { | ||||
| @@ -99,8 +100,8 @@ export const HERITIERS_CONFIG = { | ||||
|     "main": "Main", | ||||
|     "tete": "Tête/Coeur" | ||||
|   }, | ||||
|    | ||||
|   categorieArme : { | ||||
|  | ||||
|   categorieArme: { | ||||
|     "trait": "Arme de trait", | ||||
|     "poing": "Arme de poing", | ||||
|     "epaule": "Arme d'épaule", | ||||
| @@ -108,7 +109,7 @@ export const HERITIERS_CONFIG = { | ||||
|     "blanche": "Arme blanche", | ||||
|     "improvise": "Arme improvisée", | ||||
|     "explosif": "Explosif" | ||||
|   },  | ||||
|   }, | ||||
|   typeArme: { | ||||
|     "naturelle": "Arme naturelle", | ||||
|     "trait": "Trait", | ||||
| @@ -130,13 +131,13 @@ export const HERITIERS_CONFIG = { | ||||
|     "controlee": "Contrôlée (C)", | ||||
|     "prohibee": "Prohibée (P)" | ||||
|   }, | ||||
|   armeDissimulation :{ | ||||
|   armeDissimulation: { | ||||
|     "tresfacile": "Très facile (TF)", | ||||
|     "facile": "Facile (F)", | ||||
|     "difficile": "Difficile (D)", | ||||
|     "impossible": "Impossible (I)" | ||||
|   }, | ||||
|   typeProtection : { | ||||
|   typeProtection: { | ||||
|     "balle": "Protège ds balles", | ||||
|     "melee": "Protège en mélée", | ||||
|     "tout": "Tout type de dégats" | ||||
| @@ -145,7 +146,128 @@ export const HERITIERS_CONFIG = { | ||||
|     "traditionnelle": "Traditionnelle", | ||||
|     "moderne": "Moderne", | ||||
|     "orientale": "Orientale" | ||||
|   }, | ||||
|   typeContact: { | ||||
|     "contact": "Contact", | ||||
|     "allie": "Allié", | ||||
|     "ennemi": "Ennemi", | ||||
|     "interet": "Personne d'interêt" | ||||
|   }, | ||||
|   niveauContact: { | ||||
|     "1": "1", | ||||
|     "2": "2", | ||||
|     "3": "3", | ||||
|   }, | ||||
|   pointsUsageList: { | ||||
|     "1": "1", | ||||
|     "2": "2", | ||||
|     "3": "3", | ||||
|     "4": "4", | ||||
|   }, | ||||
|   attaquePlusieursList: { | ||||
|     "0": "0", | ||||
|     "1": "+1", | ||||
|     "2": "+2", | ||||
|   }, | ||||
|   attaque2ArmesListe: [ | ||||
|     { value: "0", label: "Aucun" }, | ||||
|     { value: "-4", label: "Deux armes à 1 main" }, | ||||
|     { value: "-2", label: "Deux armes naturelles" }, | ||||
|     { value: "-2", label: "Avec spécialisation \"Mauvaise Main\"" } | ||||
|   ], | ||||
|   typeProfil: { | ||||
|     "mineur": "Mineur", | ||||
|     "majeur": "Majeur", | ||||
|   }, | ||||
|   bonusMalusContext: [ | ||||
|     { value: "-6", label: "-6" }, | ||||
|     { value: "-5", label: "-5" }, | ||||
|     { value: "-4", label: "-4" }, | ||||
|     { value: "-3", label: "-3" }, | ||||
|     { value: "-2", label: "-2" }, | ||||
|     { value: "-1", label: "-1" }, | ||||
|     { value: "0", label: "0" }, | ||||
|     { value: "1", label: "+1" }, | ||||
|     { value: "2", label: "+2" }, | ||||
|     { value: "3", label: "+3" }, | ||||
|     { value: "4", label: "+4" }, | ||||
|     { value: "5", label: "+5" }, | ||||
|     { value: "6", label: "+6" } | ||||
|   ], | ||||
|   listNiveauSort: { | ||||
|     "1": "1", | ||||
|     "2": "2", | ||||
|     "3": "3", | ||||
|     "4": "4" | ||||
|   }, | ||||
|   listNiveau: { | ||||
|     "0": "0", | ||||
|     "1": "1", | ||||
|     "2": "2", | ||||
|     "3": "3", | ||||
|     "4": "4", | ||||
|     "5": "5", | ||||
|     "6": "6", | ||||
|     "7": "7", | ||||
|     "8": "8", | ||||
|     "9": "9", | ||||
|     "10": "10" | ||||
|   }, | ||||
|   rangName: [ | ||||
|     "Novice", | ||||
|     "Novice", | ||||
|     "Adepte", | ||||
|     "Maître", | ||||
|     "Grand Maître" | ||||
|   ], | ||||
|   rangNameSpecific: { | ||||
|     "Druidisme": { | ||||
|       "Novice": "Eubage", | ||||
|       "Adepte": "Saronide", | ||||
|       "Maître": "Ovate", | ||||
|       "Grand Maître": "Archidruide" | ||||
|     }, | ||||
|     "Faëomancie": { | ||||
|       "Novice": "Marmiton", | ||||
|       "Adepte": "Queux", | ||||
|       "Maître": "Chef", | ||||
|       "Grand Maître": "Maître-queux" | ||||
|     }, | ||||
|     "Nécromancie": { | ||||
|       "Novice": "Inexpertus", | ||||
|       "Adepte": "Discipulus", | ||||
|       "Maître": "Dominus", | ||||
|       "Grand Maître": "Magister" | ||||
|     }, | ||||
|     "Necromancie": { | ||||
|       "Novice": "Inexpertus", | ||||
|       "Adepte": "Discipulus", | ||||
|       "Maître": "Dominus", | ||||
|       "Grand Maître": "Magister" | ||||
|     }, | ||||
|     "Magie du Clan": { | ||||
|       "Novice": "Apprenti", | ||||
|       "Adepte": "Disciple", | ||||
|       "Maître": "Maître", | ||||
|       "Grand Maître": "Éminence" | ||||
|     }, | ||||
|     "Théurgie": { | ||||
|       "Novice": "Frère", | ||||
|       "Adepte": "Père", | ||||
|       "Maître": "Saint", | ||||
|       "Grand Maître": "Apôtre" | ||||
|     }, | ||||
|     "Grand Langage": { | ||||
|       "Novice": "Éveillé", | ||||
|       "Adepte": "Initié", | ||||
|       "Maître": "Sage", | ||||
|       "Grand Maître": "Docteur" | ||||
|     } | ||||
|   }, | ||||
|   soufflesMagieDuClan: { | ||||
|     "Souffle du Combat": "Souffle du Combat", | ||||
|     "Souffle du Mouvement": "Souffle du Mouvement", | ||||
|     "Souffle de l'Esprit": "Souffle de l'Esprit" | ||||
|   } | ||||
|  | ||||
|    | ||||
| } | ||||
| @@ -1,25 +0,0 @@ | ||||
| /** | ||||
|  * Extend the basic ActorSheet with some very simple modifications | ||||
|  * @extends {ActorSheet} | ||||
|  */ | ||||
|  | ||||
|  import { HeritiersActorSheet } from "./heritiers-actor-sheet.js"; | ||||
| import { HeritiersUtility } from "./heritiers-utility.js"; | ||||
|  | ||||
| /* -------------------------------------------- */ | ||||
| export class HeritiersCreatureSheet extends HeritiersActorSheet { | ||||
|  | ||||
|   /** @override */ | ||||
|   static get defaultOptions() { | ||||
|  | ||||
|     return mergeObject(super.defaultOptions, { | ||||
|       classes: ["fvtt-les-heritiers", "sheet", "actor"], | ||||
|       template: "systems/fvtt-les-heritiers/templates/creature-sheet.html", | ||||
|       width: 640, | ||||
|       height: 720, | ||||
|       tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }], | ||||
|       dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }], | ||||
|       editScore: false | ||||
|     }) | ||||
|   } | ||||
| } | ||||
| @@ -4,12 +4,12 @@ import { HeritiersUtility } from "./heritiers-utility.js"; | ||||
|  * Extend the basic ItemSheet with some very simple modifications | ||||
|  * @extends {ItemSheet} | ||||
|  */ | ||||
| export class HeritiersItemSheet extends ItemSheet { | ||||
| export class HeritiersItemSheet extends foundry.appv1.sheets.ItemSheet { | ||||
|  | ||||
|   /** @override */ | ||||
|   static get defaultOptions() { | ||||
|  | ||||
|     return mergeObject(super.defaultOptions, { | ||||
|     return foundry.utils.mergeObject(super.defaultOptions, { | ||||
|       classes: ["fvtt-les-heritiers", "sheet", "item"], | ||||
|       template: "systems/fvtt-les-heritiers/templates/item-sheet.html", | ||||
|       dragDrop: [{ dragSelector: null, dropSelector: null }], | ||||
| @@ -48,7 +48,7 @@ export class HeritiersItemSheet extends ItemSheet { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   async getData() { | ||||
|     const objectData = duplicate(this.object) | ||||
|     const objectData = foundry.utils.duplicate(this.object) | ||||
|     let formData = { | ||||
|       title: this.title, | ||||
|       id: this.id, | ||||
| @@ -63,11 +63,24 @@ export class HeritiersItemSheet extends ItemSheet { | ||||
|       owner: this.document.isOwner, | ||||
|       config: game.system.lesheritiers.config, | ||||
|       isArmeMelee: HeritiersUtility.isArmeMelee(this.object), | ||||
|       description: await TextEditor.enrichHTML(this.object.system.description, {async: true}), | ||||
|       description: await  foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.description, {async: true}), | ||||
|       mr: (this.object.type == 'specialisation'), | ||||
|       isGM: game.user.isGM | ||||
|       isGM: game.user.isGM, | ||||
|       usageMax: -1 | ||||
|     } | ||||
|  | ||||
|     // Items specific data | ||||
|     if (this.object.type == 'pouvoir' && this.document.isOwner && this.actor) { | ||||
|       formData.usageMax = this.actor.getPouvoirUsageMax(this.object) | ||||
|       if (this.object.system.pointsusagecourant == -1) { | ||||
|         this.object.system.pointsusagecourant = formData.usageMax | ||||
|       } | ||||
|     } | ||||
|     if (this.object.type == 'sort' ) { | ||||
|       formData.competencesMagie = HeritiersUtility.getCompetencesMagie() | ||||
|     } | ||||
|  | ||||
|  | ||||
|     //this.options.editable = !(this.object.origin == "embeddedItem"); | ||||
|     console.log("ITEM DATA", formData, this); | ||||
|     return formData; | ||||
| @@ -87,7 +100,7 @@ export class HeritiersItemSheet extends ItemSheet { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   postItem() { | ||||
|     let chatData = duplicate(HeritiersUtility.data(this.item)); | ||||
|     let chatData = foundry.utils.duplicate(HeritiersUtility.data(this.item)); | ||||
|     if (this.actor) { | ||||
|       chatData.actor = { id: this.actor.id }; | ||||
|     } | ||||
| @@ -129,55 +142,55 @@ export class HeritiersItemSheet extends ItemSheet { | ||||
|     }) | ||||
|  | ||||
|     html.find('#add-specialite').click(ev => { | ||||
|       let spec = duplicate(this.object.system.specialites) | ||||
|       spec.push( { name: "Nouvelle Spécialité", id: randomID(16), used: false })  | ||||
|       let spec = foundry.utils.duplicate(this.object.system.specialites) | ||||
|       spec.push( { name: "Nouvelle Spécialité", id: foundry.utils.randomID(16), used: false }) | ||||
|       this.object.update( { 'system.specialites': spec }) | ||||
|     }) | ||||
|     html.find('.delete-specialite').click(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".specialite-item") | ||||
|       let index = li.data("specialite-index") | ||||
|       let spec = duplicate(this.object.system.specialites) | ||||
|       let spec = foundry.utils.duplicate(this.object.system.specialites) | ||||
|       spec.splice(index,1) | ||||
|       this.object.update( { 'system.specialites': spec }) | ||||
|     }) | ||||
|     html.find('.edit-specialite').change(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".specialite-item") | ||||
|       let index = li.data("specialite-index") | ||||
|       let spec = duplicate(this.object.system.specialites) | ||||
|       let spec = foundry.utils.duplicate(this.object.system.specialites) | ||||
|       spec[index].name = ev.currentTarget.value | ||||
|       spec[index].id = spec[index].id || randomID(16) | ||||
|       spec[index].id = spec[index].id || foundry.utils.randomID(16) | ||||
|       this.object.update( { 'system.specialites': spec }) | ||||
|     }) | ||||
|     html.find('.edit-specialite-description').change(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".specialite-item") | ||||
|       let index = li.data("specialite-index") | ||||
|       let spec = duplicate(this.object.system.specialites) | ||||
|       let spec = foundry.utils.duplicate(this.object.system.specialites) | ||||
|       spec[index].description = ev.currentTarget.value | ||||
|       spec[index].id = spec[index].id || randomID(16) | ||||
|       spec[index].id = spec[index].id || foundry.utils.randomID(16) | ||||
|       this.object.update( { 'system.specialites': spec }) | ||||
|     })     | ||||
|     }) | ||||
|  | ||||
|     html.find('#add-automation').click(ev => { | ||||
|       let autom = duplicate(this.object.system.automations) | ||||
|       autom.push( { eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: randomID(16) })  | ||||
|       let autom = foundry.utils.duplicate(this.object.system.automations) | ||||
|       autom.push( { eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: foundry.utils.randomID(16) }) | ||||
|       this.object.update( { 'system.automations': autom }) | ||||
|     }) | ||||
|     html.find('.delete-automation').click(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".automation-item") | ||||
|       let index = li.data("automation-index") | ||||
|       let autom = duplicate(this.object.system.automations) | ||||
|       let autom = foundry.utils.duplicate(this.object.system.automations) | ||||
|       autom.splice(index,1) | ||||
|       this.object.update( { 'system.automations': autom }) | ||||
|     }) | ||||
|     html.find('.automation-edit-field').change(ev => { | ||||
|       let index = $(ev.currentTarget).data("automation-index") | ||||
|       let field = $(ev.currentTarget).data("automation-field") | ||||
|       let auto = duplicate(this.object.system.automations) | ||||
|       let auto = foundry.utils.duplicate(this.object.system.automations) | ||||
|       auto[index][field] = ev.currentTarget.value | ||||
|       auto[index].id = auto[index].id || randomID(16) | ||||
|       auto[index].id = auto[index].id || foundry.utils.randomID(16) | ||||
|       this.object.update( { 'system.automations': auto }) | ||||
|     })     | ||||
|      | ||||
|     }) | ||||
|  | ||||
|     // Update Inventory Item | ||||
|     html.find('.item-delete').click(ev => { | ||||
|       const li = $(ev.currentTarget).parents(".item"); | ||||
|   | ||||
| @@ -18,6 +18,7 @@ export const defaultItemImg = { | ||||
|     fee: "systems/fvtt-les-heritiers/assets/icons/faery_type.webp", | ||||
|     profil: "systems/fvtt-les-heritiers/assets/icons/profil.webp", | ||||
|     equipement: "systems/fvtt-les-heritiers/assets/icons/equipement.webp",   | ||||
|     sort: "systems/fvtt-les-heritiers/assets/icons/sort.webp", | ||||
| } | ||||
|  | ||||
| /** | ||||
|   | ||||
| @@ -12,7 +12,6 @@ import { HeritiersActor } from "./heritiers-actor.js"; | ||||
| import { HeritiersItemSheet } from "./heritiers-item-sheet.js"; | ||||
| import { HeritiersActorSheet } from "./heritiers-actor-sheet.js"; | ||||
| import { HeritiersActorPNJSheet } from "./heritiers-actor-pnj-sheet.js"; | ||||
| import { HeritiersCreatureSheet } from "./heritiers-creature-sheet.js"; | ||||
| import { HeritiersUtility } from "./heritiers-utility.js"; | ||||
| import { HeritiersCombat } from "./heritiers-combat.js"; | ||||
| import { HeritiersItem } from "./heritiers-item.js"; | ||||
| @@ -31,7 +30,7 @@ Hooks.once("init", async function () { | ||||
|   HeritiersUtility.preloadHandlebarsTemplates() | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   // Set an initiative formula for the system  | ||||
|   // Set an initiative formula for the system | ||||
|   CONFIG.Combat.initiative = { | ||||
|     formula: "1d10", | ||||
|     decimals: 1 | ||||
| @@ -47,6 +46,8 @@ Hooks.once("init", async function () { | ||||
|   CONFIG.Combat.documentClass = HeritiersCombat | ||||
|   CONFIG.Actor.documentClass = HeritiersActor | ||||
|   CONFIG.Item.documentClass = HeritiersItem | ||||
|   // Create an object of bonus/malus from -6 to +6 signed | ||||
|   HERITIERS_CONFIG.bonusMalus = Array.from({ length: 7 }, (v, k) => toString(k - 6)) | ||||
|   game.system.lesheritiers = { | ||||
|     HeritiersUtility, | ||||
|     config: HERITIERS_CONFIG | ||||
| @@ -54,12 +55,12 @@ Hooks.once("init", async function () { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   // Register sheet application classes | ||||
|   Actors.unregisterSheet("core", ActorSheet); | ||||
|   Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true }) | ||||
|   Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true }) | ||||
|   foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet); | ||||
|   foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true }) | ||||
|   foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true }) | ||||
|  | ||||
|   Items.unregisterSheet("core", ItemSheet); | ||||
|   Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true }) | ||||
|   foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet); | ||||
|   foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true }) | ||||
|  | ||||
|   HeritiersUtility.init() | ||||
|  | ||||
| @@ -105,13 +106,13 @@ Hooks.once("ready", function () { | ||||
|       user: game.user._id | ||||
|     }); | ||||
|   } | ||||
|    | ||||
|   import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter=>{ | ||||
|  | ||||
|   import("https://www.uberwald.me/fvtt_appcount/count-class-ready.js").then(moduleCounter => { | ||||
|     console.log("ClassCounter loaded", moduleCounter) | ||||
|     moduleCounter.ClassCounter.registerUsageCount() | ||||
|   }).catch(err=> | ||||
|   }).catch(err => | ||||
|     console.log("No stats available, giving up.") | ||||
|   )     | ||||
|   ) | ||||
|   welcomeMessage(); | ||||
|   importDefaultScene(); | ||||
|  | ||||
| @@ -130,4 +131,3 @@ Hooks.on("chatMessage", (html, content, msg) => { | ||||
|   } | ||||
|   return true; | ||||
| }); | ||||
|  | ||||
|   | ||||
| @@ -6,7 +6,7 @@ export class HeritiersRollDialog extends Dialog { | ||||
|   static async create(actor, rollData) { | ||||
|  | ||||
|     let options = { classes: ["HeritiersDialog"], width: 420, height: 'fit-content', 'z-index': 99999 }; | ||||
|     let html = await renderTemplate('systems/fvtt-les-heritiers/templates/roll-dialog-generic.html', rollData); | ||||
|     let html = await foundry.applications.handlebars.renderTemplate('systems/fvtt-les-heritiers/templates/roll-dialog-generic.html', rollData); | ||||
|  | ||||
|     return new HeritiersRollDialog(actor, rollData, html, options); | ||||
|   } | ||||
| @@ -22,10 +22,10 @@ export class HeritiersRollDialog extends Dialog { | ||||
|     } | ||||
|     let enableD10 = false | ||||
|     let enableD12 = false | ||||
|     if (rollData.competence?.system.niveau > 0) { | ||||
|     if (rollData.mode == "pouvoir" || rollData.competence?.system.niveau > 0) { | ||||
|       enableD10 = true | ||||
|     } | ||||
|     if (rollData.competence?.system.niveau > 1) { | ||||
|     if (rollData.mode == "pouvoir" || rollData.competence?.system.niveau > 1) { | ||||
|       enableD12 = true | ||||
|     } | ||||
|     if (enableD10) { | ||||
| @@ -109,7 +109,6 @@ export class HeritiersRollDialog extends Dialog { | ||||
|   activateListeners(html) { | ||||
|     super.activateListeners(html); | ||||
|  | ||||
|     var dialog = this; | ||||
|     function onLoad() { | ||||
|     } | ||||
|     $(function () { onLoad(); }); | ||||
| @@ -118,6 +117,7 @@ export class HeritiersRollDialog extends Dialog { | ||||
|       this.rollData.sdValue = Number(event.currentTarget.value) | ||||
|     }) | ||||
|     html.find('#caracKey').change(async (event) => { | ||||
|       //console.log("caracKey", event.currentTarget.value) | ||||
|       this.rollData.caracKey = String(event.currentTarget.value) | ||||
|     }) | ||||
|     html.find('#bonus-malus-context').change((event) => { | ||||
| @@ -129,6 +129,9 @@ export class HeritiersRollDialog extends Dialog { | ||||
|     html.find('#useSpecialite').change((event) => { | ||||
|       this.rollData.useSpecialite = event.currentTarget.checked | ||||
|     }) | ||||
|     html.find('#pouvoirPointsUsage').change((event) => { | ||||
|       this.rollData.pouvoirPointsUsage = Number(event.currentTarget.value) | ||||
|     }) | ||||
|     html.find('#attaqueDos').change((event) => { | ||||
|       this.rollData.attaqueDos = event.currentTarget.checked | ||||
|     }) | ||||
| @@ -138,6 +141,6 @@ export class HeritiersRollDialog extends Dialog { | ||||
|     html.find('#attaque-cible').change((event) => { | ||||
|       this.rollData.attaqueCible = String(event.currentTarget.value) | ||||
|     }) | ||||
|      | ||||
|  | ||||
|   } | ||||
| } | ||||
| @@ -26,7 +26,7 @@ const __facesAdjacentes = { | ||||
|     10: [8, 4, 3, 7] | ||||
|   }, | ||||
|   "d12": { | ||||
|     1:[2, 3, 4, 5, 6], | ||||
|     1: [2, 3, 4, 5, 6], | ||||
|     2: [1, 6, 8, 12, 3], | ||||
|     3: [1, 4, 11, 12, 2], | ||||
|     4: [1, 5, 10, 11, 3], | ||||
| @@ -48,7 +48,7 @@ export class HeritiersUtility { | ||||
|   /* -------------------------------------------- */ | ||||
|   static async init() { | ||||
|     Hooks.on('renderChatLog', (log, html, data) => HeritiersUtility.chatListeners(html)) | ||||
|     Hooks.on("getChatLogEntryContext", (html, options) => HeritiersUtility.chatRollMenu(html, options)) | ||||
|     /* Unused for Heitiers : Hooks.on("getChatMessageContextOptions", (html, options) => HeritiersUtility.chatRollMenu(html, options))*/ | ||||
|  | ||||
|     this.rollDataStore = {} | ||||
|     this.defenderStore = {} | ||||
| @@ -104,6 +104,8 @@ export class HeritiersUtility { | ||||
|     const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences") | ||||
|     this.skills = skills.map(i => i.toObject()) | ||||
|  | ||||
|     this.competencesMagie = this.skills.filter(s => s.system.profil == "magie") | ||||
|  | ||||
|     game.settings.register("fvtt-les-heritiers", "heritiers-heritage", { | ||||
|       name: "Points d'héritage", | ||||
|       hint: "Points d'héritage du groupe", | ||||
| @@ -114,6 +116,32 @@ export class HeritiersUtility { | ||||
|     }) | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   static getSDSortValue(niveau) { | ||||
|     if (niveau <= 1) return 12; | ||||
|     if (niveau == 2) return 14; | ||||
|     if (niveau == 3) return 16; | ||||
|     if (niveau > 3) return 18; | ||||
|     return 18; | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   static getCompetencesMagie() { | ||||
|     return this.competencesMagie | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   static buildCompetencesMagie() { | ||||
|     let competences = foundry.utils.duplicate(this.getCompetencesMagie()) | ||||
|     for (let comp of competences) { | ||||
|       // Calcul du rang | ||||
|       let rang = Math.round(comp.system.niveau / 2); | ||||
|       competences.system.rang = rang; | ||||
|       competences.system.rangGenericName = game.system.lesheritiers.config.rangName[rang]; | ||||
|       competences.system.rangSpecificName = game.system.lesheritiers.config.rangNameSpecific[comp.Name][competences.system.rangGenericName]; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   static async loadCompendiumData(compendium) { | ||||
|     const pack = game.packs.get(compendium); | ||||
| @@ -133,29 +161,29 @@ export class HeritiersUtility { | ||||
|   /* -------------------------------------------- */ | ||||
|   static async chatListeners(html) { | ||||
|  | ||||
|     html.on("click", '.predilection-reroll', async event => { | ||||
|     $(html).on("click", '.predilection-reroll', async event => { | ||||
|       let predIdx = $(event.currentTarget).data("predilection-index") | ||||
|       let messageId = HeritiersUtility.findChatMessageId(event.currentTarget) | ||||
|       let message = game.messages.get(messageId) | ||||
|       let rollData = message.getFlag("world", "heritiers-roll") | ||||
|       let actor = this.getActorFromRollData(rollData) | ||||
|       await actor.setPredilectionUsed(rollData.competence._id, predIdx) | ||||
|       rollData.competence = duplicate(actor.getCompetence(rollData.competence._id)) | ||||
|       rollData.competence = foundry.utils.duplicate(actor.getCompetence(rollData.competence._id)) | ||||
|       HeritiersUtility.rollHeritiers(rollData) | ||||
|     }) | ||||
|      | ||||
|     html.on("click", '.roll-tricherie-2', async event => { | ||||
|  | ||||
|     $(html).on("click", '.roll-tricherie-2', async event => { | ||||
|       let messageId = HeritiersUtility.findChatMessageId(event.currentTarget) | ||||
|       let message = game.messages.get(messageId) | ||||
|       let rollData = message.getFlag("world", "heritiers-roll") | ||||
|       let actor = this.getActorFromRollData(rollData) | ||||
|       if ( await actor.incDecTricherie(-2) ) { | ||||
|       if (await actor.incDecTricherie(-2)) { | ||||
|         rollData.forcedValue = Number($(event.currentTarget).data("dice-value")) | ||||
|         HeritiersUtility.rollHeritiers(rollData)   | ||||
|         HeritiersUtility.rollHeritiers(rollData) | ||||
|       } | ||||
|     }) | ||||
|      | ||||
|     html.on("click", '.roll-chat-degat', async event => { | ||||
|  | ||||
|     $(html).on("click", '.roll-chat-degat', async event => { | ||||
|       let messageId = HeritiersUtility.findChatMessageId(event.currentTarget) | ||||
|       let message = game.messages.get(messageId) | ||||
|       let rollData = message.getFlag("world", "heritiers-roll") | ||||
| @@ -172,10 +200,9 @@ export class HeritiersUtility { | ||||
|       'systems/fvtt-les-heritiers/templates/partial-item-header.html', | ||||
|       'systems/fvtt-les-heritiers/templates/partial-item-description.html', | ||||
|       'systems/fvtt-les-heritiers/templates/partial-item-nav.html', | ||||
|       'systems/fvtt-les-heritiers/templates/partial-utile-skills.html', | ||||
|       'systems/fvtt-les-heritiers/templates/partial-list-niveau.html' | ||||
|       'systems/fvtt-les-heritiers/templates/partial-utile-skills.html' | ||||
|     ] | ||||
|     return loadTemplates(templatePaths); | ||||
|     return foundry.applications.handlebars.loadTemplates(templatePaths); | ||||
|   } | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
| @@ -252,14 +279,14 @@ export class HeritiersUtility { | ||||
|  | ||||
|     let id = rollData.rollId; | ||||
|     let oldRollData = this.rollDataStore[id] || {}; | ||||
|     let newRollData = mergeObject(oldRollData, rollData); | ||||
|     let newRollData = foundry.utils.mergeObject(oldRollData, rollData); | ||||
|     this.rollDataStore[id] = newRollData; | ||||
|   } | ||||
|   /* -------------------------------------------- */ | ||||
|   static saveRollData(rollData) { | ||||
|     game.socket.emit("system.fvtt-les-heritiers", { | ||||
|       name: "msg_update_roll", data: rollData | ||||
|     }); // Notify all other clients of the roll     | ||||
|     }); // Notify all other clients of the roll | ||||
|     this.updateRollData(rollData); | ||||
|   } | ||||
|  | ||||
| @@ -390,8 +417,8 @@ export class HeritiersUtility { | ||||
|           rollData.finalResult -= 5 + rollValue // Remove also the dice result has it has been added already | ||||
|         } | ||||
|       } | ||||
|       if ( !rollData.forcedValue) { | ||||
|         rollData.adjacentFaces = duplicate(__facesAdjacentes[rollData.mainDice][rollData.diceValue]) | ||||
|       if (!rollData.forcedValue) { | ||||
|         rollData.adjacentFaces = foundry.utils.duplicate(__facesAdjacentes[rollData.mainDice][rollData.diceValue]) | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| @@ -451,7 +478,7 @@ export class HeritiersUtility { | ||||
|       this.computeArmeDegats(rollData, actor) | ||||
|     } | ||||
|     this.createChatWithRollMode(rollData.alias, { | ||||
|       content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-cc-result.html`, rollData) | ||||
|       content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-cc-result.html`, rollData) | ||||
|     }, rollData, "selfroll") | ||||
|   } | ||||
|   /* -------------------------------------------- */ | ||||
| @@ -463,7 +490,7 @@ export class HeritiersUtility { | ||||
|     this.computeMarge(rollData, valeurDefense) | ||||
|     rollData.dureeAssommer = (rollData.marge) ? rollData.marge * 2 : 1 | ||||
|     this.createChatWithRollMode(rollData.alias, { | ||||
|       content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-assommer-result.html`, rollData) | ||||
|       content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-assommer-result.html`, rollData) | ||||
|     }, rollData, "selfroll") | ||||
|   } | ||||
|   /* -------------------------------------------- */ | ||||
| @@ -471,8 +498,14 @@ export class HeritiersUtility { | ||||
|  | ||||
|     let actor = this.getActorFromRollData(rollData) | ||||
|  | ||||
|     if (rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) { | ||||
|       ui.notifications.warn("Pas assez de points d'usage pour ce pouvoir.") | ||||
|       return | ||||
|     } | ||||
|  | ||||
|     //rollData.actionImg = "systems/fvtt-les-heritiers/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp" | ||||
|     rollData.carac = duplicate(actor.system.caracteristiques[rollData.caracKey]) | ||||
|     if (rollData.caracKey == "pre") rollData.caracKey = "pres"; // Patch tomanage wrong carac key | ||||
|     rollData.carac = foundry.utils.duplicate(actor.system.caracteristiques[rollData.caracKey]) | ||||
|  | ||||
|     if (rollData.forcedValue) { | ||||
|       rollData.diceFormula = rollData.forcedValue | ||||
| @@ -481,7 +514,7 @@ export class HeritiersUtility { | ||||
|         rollData.diceFormula = "{1d8, 1d10, 1d12}" | ||||
|       } else { | ||||
|         rollData.diceFormula = "1" + rollData.mainDice + "kh1" | ||||
|       }   | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     let rangValue = 0 | ||||
| @@ -530,20 +563,37 @@ export class HeritiersUtility { | ||||
|       } | ||||
|     } | ||||
|  | ||||
|  | ||||
|     let myRoll = new Roll(rollData.diceFormula).roll({ async: false }) | ||||
|     await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) | ||||
|     rollData.roll = duplicate(myRoll) | ||||
|     console.log(">>>> ", myRoll) | ||||
|     this.computeResult(actor, rollData) | ||||
|     this.computeMarge(rollData, rollData.sdValue) // Calcul de la marge si seuil présent | ||||
|     if (!rollData.noRoll) { | ||||
|       let myRoll = await new Roll(rollData.diceFormula).roll() | ||||
|       await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) | ||||
|       rollData.roll = foundry.utils.duplicate(myRoll) | ||||
|       console.log(">>>> ", myRoll) | ||||
|       this.computeResult(actor, rollData) | ||||
|       this.computeMarge(rollData, rollData.sdValue) // Calcul de la marge si seuil présent | ||||
|     } | ||||
|  | ||||
|     if (rollData.mode == "init") { | ||||
|       actor.setFlag("world", "last-initiative", rollData.finalResult) | ||||
|     } | ||||
|  | ||||
|     // Gestion pouvoir et points d'usage | ||||
|     if (rollData.mode == "pouvoir" || rollData.mode == "pouvoirpassif") { | ||||
|       actor.incDecPointsUsage(rollData.pouvoir._id, -rollData.pouvoirPointsUsage) | ||||
|     } | ||||
|     // Gestion sort et points d'âme | ||||
|     if (rollData.mode == "sort") { | ||||
|       if (rollData.spendEsprit) { | ||||
|         actor.inDecCarac("esp", -1) | ||||
|       } else { | ||||
|         actor.incDecPointsAme(-rollData.sortPointsAme) | ||||
|         if (rollData.sort.system.competence == "Magie du Clan") { | ||||
|           actor.incDecPV(-2) | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     this.createChatWithRollMode(rollData.alias, { | ||||
|       content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData) | ||||
|       content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData) | ||||
|     }, rollData) | ||||
|  | ||||
|     // Gestion attaque standard | ||||
| @@ -572,16 +622,16 @@ export class HeritiersUtility { | ||||
|   static async bonusRollHeritiers(rollData) { | ||||
|     rollData.bonusFormula = rollData.addedBonus | ||||
|  | ||||
|     let bonusRoll = new Roll(rollData.bonusFormula).roll({ async: false }) | ||||
|     let bonusRoll = await new Roll(rollData.bonusFormula).roll() | ||||
|     await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode")); | ||||
|     rollData.bonusRoll = duplicate(bonusRoll) | ||||
|     rollData.bonusRoll = foundry.utils.duplicate(bonusRoll) | ||||
|  | ||||
|     rollData.finalResult += rollData.bonusRoll.total | ||||
|  | ||||
|     this.computeResult(rollData) | ||||
|  | ||||
|     this.createChatWithRollMode(rollData.alias, { | ||||
|       content: await renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData) | ||||
|       content: await foundry.applications.handlebars.renderTemplate(`systems/fvtt-les-heritiers/templates/chat-generic-result.html`, rollData) | ||||
|     }, rollData) | ||||
|  | ||||
|   } | ||||
| @@ -593,7 +643,7 @@ export class HeritiersUtility { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   static isArmeMelee(arme) { | ||||
|     return (arme.type == "arme" && (arme.system.categorie == "lourde" || arme.system.categorie == "blanche" || arme.system.categorie == "improvise")) ? true : false | ||||
|     return (arme.type == "arme" && (arme.system.categorie == "lourde" || arme.system.categorie == "blanche" || arme.system.categorie == "improvise")) | ||||
|   } | ||||
|   /* -------------------------------------------- */ | ||||
|   static getWhisperRecipients(rollMode, name) { | ||||
| @@ -612,7 +662,7 @@ export class HeritiersUtility { | ||||
|  | ||||
|   /* -------------------------------------------- */ | ||||
|   static blindMessageToGM(chatOptions) { | ||||
|     let chatGM = duplicate(chatOptions); | ||||
|     let chatGM = foundry.utils.duplicate(chatOptions); | ||||
|     chatGM.whisper = this.getUsers(user => user.isGM); | ||||
|     chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content; | ||||
|     console.log("blindMessageToGM", chatGM); | ||||
| @@ -676,7 +726,7 @@ export class HeritiersUtility { | ||||
|   /* -------------------------------------------- */ | ||||
|   static getBasicRollData() { | ||||
|     let rollData = { | ||||
|       rollId: randomID(16), | ||||
|       rollId: foundry.utils.randomID(16), | ||||
|       rollMode: game.settings.get("core", "rollMode"), | ||||
|       sdList: game.system.lesheritiers.config.seuilsDifficulte, | ||||
|       sdValue: -1, | ||||
| @@ -754,13 +804,13 @@ export class HeritiersUtility { | ||||
|   static chatRollMenu(html, options) { | ||||
|     let canApply = li => canvas.tokens.controlled.length && li.find(".heritiers-roll").length | ||||
|     let canApplyBA = function (li) { | ||||
|       let message = game.messages.get(li.attr("data-message-id")) | ||||
|       let message = game.messages.get($(li).attr("data-message-id")) | ||||
|       let rollData = message.getFlag("world", "heritiers-roll") | ||||
|       let actor = this.getActorFromRollData(rollData) | ||||
|       return (!rollData.isReroll && actor.getBonneAventure() > 0) | ||||
|     } | ||||
|     let canApplyPE = function (li) { | ||||
|       let message = game.messages.get(li.attr("data-message-id")) | ||||
|       let message = game.messages.get($(li).attr("data-message-id")) | ||||
|       let rollData = message.getFlag("world", "heritiers-roll") | ||||
|       let actor = this.getActorFromRollData(rollData) | ||||
|       return (!rollData.isReroll && actor.getEclat() > 0) | ||||
| @@ -795,11 +845,11 @@ export class HeritiersUtility { | ||||
|   /* -------------------------------------------- */ | ||||
|   static async confirmDelete(actorSheet, li) { | ||||
|     let itemId = li.data("item-id"); | ||||
|     let msgTxt = "<p>Are you sure to remove this Item ?"; | ||||
|     let msgTxt = "<p>Certain de supprimer cet item ?"; | ||||
|     let buttons = { | ||||
|       delete: { | ||||
|         icon: '<i class="fas fa-check"></i>', | ||||
|         label: "Yes, remove it", | ||||
|         label: "Oui !", | ||||
|         callback: () => { | ||||
|           actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]); | ||||
|           li.slideUp(200, () => actorSheet.render(false)); | ||||
| @@ -807,12 +857,12 @@ export class HeritiersUtility { | ||||
|       }, | ||||
|       cancel: { | ||||
|         icon: '<i class="fas fa-times"></i>', | ||||
|         label: "Cancel" | ||||
|         label: "Non !" | ||||
|       } | ||||
|     } | ||||
|     msgTxt += "</p>"; | ||||
|     let d = new Dialog({ | ||||
|       title: "Confirm removal", | ||||
|       title: "Confirmer la suppression", | ||||
|       content: msgTxt, | ||||
|       buttons: buttons, | ||||
|       default: "cancel" | ||||
| @@ -820,21 +870,56 @@ export class HeritiersUtility { | ||||
|     d.render(true); | ||||
|   } | ||||
|  | ||||
|   /************************************************************************************/ | ||||
|   static async __create_talents_table() { | ||||
|     let compName = "fvtt-les-heritiers.talents-cellule" | ||||
|     const compData = await HeritiersUtility.loadCompendium(compName) | ||||
|     let talents = compData.map(i => i.toObject()) | ||||
|  | ||||
|     let htmlTab = "<table border='1'><tbody>"; | ||||
|     for (let entryData of talents) { | ||||
|       console.log(entryData) | ||||
|       htmlTab += `<tr><td>@UUID[Compendium.${compName}.${entryData._id}]{${entryData.name}}</td>` | ||||
|       htmlTab += `<td>${entryData.system.description}</td>`; | ||||
|       //htmlTab += `<td>${entryData.system.resumebonus}</td>`; | ||||
|       htmlTab += "</tr>\n"; | ||||
|   static loadSort() { | ||||
|     // Create afolder in the item directory if it doesn't exist | ||||
|     if (!game.folders.getName("Magie du Clan")) { | ||||
|       Folder.create({ | ||||
|         name: "Magie du Clan", | ||||
|         type: "Item", | ||||
|         color: "#3b1361" | ||||
|       }); | ||||
|     } | ||||
|     htmlTab += "</table>"; | ||||
|     await JournalEntry.create({ name: 'Liste des Talents de Cellule', content: htmlTab }); | ||||
|  | ||||
|     // Load the srcdata/sorts-druidisme.json file | ||||
|     return fetch("systems/fvtt-les-heritiers/srcdata/sort_magieduclan.json") | ||||
|       .then(response => response.json()) | ||||
|       .then(data => { | ||||
|         console.log("Sorts Magie du Clan loaded:", data); | ||||
|         this.sortDruidisme = data; | ||||
|         // Loop through the spell and create the "sort "item based on the JSON content | ||||
|         data.forEach(spell => { | ||||
|           spell.name = spell.name; | ||||
|           spell.type = "sort"; | ||||
|           spell.system = { | ||||
|             niveau: spell.niveau, | ||||
|             competence: spell.competence, | ||||
|             carac1: spell.carac1, | ||||
|             carac2: spell.carac2, | ||||
|             description: spell.description, | ||||
|             ingredients: spell.ingredients, | ||||
|             portee: spell.portee, | ||||
|             duree: spell.duree, | ||||
|             concentration: spell.concentration, | ||||
|             critique: spell.critique, | ||||
|             resistance: spell.resistance, | ||||
|             coutactivation: spell.coutactivation | ||||
|           }; | ||||
|           spell.img = "systems/fvtt-les-heritiers/assets/icons/sort.webp"; | ||||
|           spell.folder = game.folders.getName("Magie du Clan").id; | ||||
|  | ||||
|           // Create the item in the world | ||||
|           Item.create(spell) | ||||
|             .then(item => { | ||||
|               console.log("Sort created:", item); | ||||
|             }) | ||||
|             .catch(error => { | ||||
|               console.error("Error creating sort item:", error); | ||||
|             }); | ||||
|         }) | ||||
|       }) | ||||
|       .catch(error => { | ||||
|         console.error("Error loading druidism spells:", error); | ||||
|         return []; | ||||
|       }); | ||||
|   } | ||||
| } | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/archetypes-fees/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/archetypes-fees/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000042 | ||||
| MANIFEST-000220 | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:59:13.196298 7f0ad3e006c0 Recovering log #40 | ||||
| 2024/03/06-18:59:13.207222 7f0ad3e006c0 Delete type=3 #38 | ||||
| 2024/03/06-18:59:13.207352 7f0ad3e006c0 Delete type=0 #40 | ||||
| 2024/03/06-18:59:54.852223 7f0ad20006c0 Level-0 table #45: started | ||||
| 2024/03/06-18:59:54.852282 7f0ad20006c0 Level-0 table #45: 0 bytes OK | ||||
| 2024/03/06-18:59:54.858458 7f0ad20006c0 Delete type=0 #43 | ||||
| 2024/03/06-18:59:54.858765 7f0ad20006c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:59:54.858791 7f0ad20006c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:34:30.878225 7f12ef7fe6c0 Recovering log #218 | ||||
| 2025/08/13-09:34:30.895947 7f12ef7fe6c0 Delete type=3 #216 | ||||
| 2025/08/13-09:34:30.896018 7f12ef7fe6c0 Delete type=0 #218 | ||||
| 2025/08/13-09:38:15.124427 7f12edffb6c0 Level-0 table #223: started | ||||
| 2025/08/13-09:38:15.124524 7f12edffb6c0 Level-0 table #223: 0 bytes OK | ||||
| 2025/08/13-09:38:15.131139 7f12edffb6c0 Delete type=0 #221 | ||||
| 2025/08/13-09:38:15.138115 7f12edffb6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:38:15.151997 7f12edffb6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:44:25.568521 7f0ad34006c0 Recovering log #36 | ||||
| 2024/03/06-18:44:25.578793 7f0ad34006c0 Delete type=3 #34 | ||||
| 2024/03/06-18:44:25.578840 7f0ad34006c0 Delete type=0 #36 | ||||
| 2024/03/06-18:46:24.175017 7f0ad20006c0 Level-0 table #41: started | ||||
| 2024/03/06-18:46:24.175038 7f0ad20006c0 Level-0 table #41: 0 bytes OK | ||||
| 2024/03/06-18:46:24.182284 7f0ad20006c0 Delete type=0 #39 | ||||
| 2024/03/06-18:46:24.188691 7f0ad20006c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:46:24.195894 7f0ad20006c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:22:09.841305 7f12eeffd6c0 Recovering log #214 | ||||
| 2025/08/12-23:22:09.894721 7f12eeffd6c0 Delete type=3 #212 | ||||
| 2025/08/12-23:22:09.894801 7f12eeffd6c0 Delete type=0 #214 | ||||
| 2025/08/12-23:24:44.447479 7f12edffb6c0 Level-0 table #219: started | ||||
| 2025/08/12-23:24:44.447513 7f12edffb6c0 Level-0 table #219: 0 bytes OK | ||||
| 2025/08/12-23:24:44.453775 7f12edffb6c0 Delete type=0 #217 | ||||
| 2025/08/12-23:24:44.453928 7f12edffb6c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:24:44.453962 7f12edffb6c0 Manual compaction at level-1 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/archetypes-fees/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/archetypes-fees/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armes-et-protection/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armes-et-protection/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000042 | ||||
| MANIFEST-000220 | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:59:13.221694 7f0ad3e006c0 Recovering log #40 | ||||
| 2024/03/06-18:59:13.232417 7f0ad3e006c0 Delete type=3 #38 | ||||
| 2024/03/06-18:59:13.232531 7f0ad3e006c0 Delete type=0 #40 | ||||
| 2024/03/06-18:59:54.871381 7f0ad20006c0 Level-0 table #45: started | ||||
| 2024/03/06-18:59:54.871434 7f0ad20006c0 Level-0 table #45: 0 bytes OK | ||||
| 2024/03/06-18:59:54.880814 7f0ad20006c0 Delete type=0 #43 | ||||
| 2024/03/06-18:59:54.893588 7f0ad20006c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:59:54.893615 7f0ad20006c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:34:30.920597 7f12effff6c0 Recovering log #218 | ||||
| 2025/08/13-09:34:30.937506 7f12effff6c0 Delete type=3 #216 | ||||
| 2025/08/13-09:34:30.937577 7f12effff6c0 Delete type=0 #218 | ||||
| 2025/08/13-09:38:15.152019 7f12edffb6c0 Level-0 table #223: started | ||||
| 2025/08/13-09:38:15.152074 7f12edffb6c0 Level-0 table #223: 0 bytes OK | ||||
| 2025/08/13-09:38:15.158671 7f12edffb6c0 Delete type=0 #221 | ||||
| 2025/08/13-09:38:15.173243 7f12edffb6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:38:15.185248 7f12edffb6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:44:25.594975 7f0ad34006c0 Recovering log #36 | ||||
| 2024/03/06-18:44:25.604899 7f0ad34006c0 Delete type=3 #34 | ||||
| 2024/03/06-18:44:25.605412 7f0ad34006c0 Delete type=0 #36 | ||||
| 2024/03/06-18:46:24.188713 7f0ad20006c0 Level-0 table #41: started | ||||
| 2024/03/06-18:46:24.188737 7f0ad20006c0 Level-0 table #41: 0 bytes OK | ||||
| 2024/03/06-18:46:24.195790 7f0ad20006c0 Delete type=0 #39 | ||||
| 2024/03/06-18:46:24.202331 7f0ad20006c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:46:24.209583 7f0ad20006c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:22:09.953525 7f12ef7fe6c0 Recovering log #214 | ||||
| 2025/08/12-23:22:09.999140 7f12ef7fe6c0 Delete type=3 #212 | ||||
| 2025/08/12-23:22:09.999193 7f12ef7fe6c0 Delete type=0 #214 | ||||
| 2025/08/12-23:24:44.461664 7f12edffb6c0 Level-0 table #219: started | ||||
| 2025/08/12-23:24:44.461699 7f12edffb6c0 Level-0 table #219: 0 bytes OK | ||||
| 2025/08/12-23:24:44.467731 7f12edffb6c0 Delete type=0 #217 | ||||
| 2025/08/12-23:24:44.481357 7f12edffb6c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:24:44.481393 7f12edffb6c0 Manual compaction at level-1 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/armes-et-protection/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/armes-et-protection/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/atouts-feeriques/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/atouts-feeriques/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000042 | ||||
| MANIFEST-000220 | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:59:13.183873 7f0ad8a006c0 Recovering log #40 | ||||
| 2024/03/06-18:59:13.193539 7f0ad8a006c0 Delete type=3 #38 | ||||
| 2024/03/06-18:59:13.193588 7f0ad8a006c0 Delete type=0 #40 | ||||
| 2024/03/06-18:59:54.838571 7f0ad20006c0 Level-0 table #45: started | ||||
| 2024/03/06-18:59:54.838599 7f0ad20006c0 Level-0 table #45: 0 bytes OK | ||||
| 2024/03/06-18:59:54.844970 7f0ad20006c0 Delete type=0 #43 | ||||
| 2024/03/06-18:59:54.858747 7f0ad20006c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:59:54.858778 7f0ad20006c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:34:30.839532 7f12ee7fc6c0 Recovering log #218 | ||||
| 2025/08/13-09:34:30.855749 7f12ee7fc6c0 Delete type=3 #216 | ||||
| 2025/08/13-09:34:30.855852 7f12ee7fc6c0 Delete type=0 #218 | ||||
| 2025/08/13-09:38:15.106127 7f12edffb6c0 Level-0 table #223: started | ||||
| 2025/08/13-09:38:15.106209 7f12edffb6c0 Level-0 table #223: 0 bytes OK | ||||
| 2025/08/13-09:38:15.112456 7f12edffb6c0 Delete type=0 #221 | ||||
| 2025/08/13-09:38:15.138064 7f12edffb6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:38:15.138149 7f12edffb6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:44:25.556505 7f0ad94006c0 Recovering log #36 | ||||
| 2024/03/06-18:44:25.565851 7f0ad94006c0 Delete type=3 #34 | ||||
| 2024/03/06-18:44:25.565906 7f0ad94006c0 Delete type=0 #36 | ||||
| 2024/03/06-18:46:24.168720 7f0ad20006c0 Level-0 table #41: started | ||||
| 2024/03/06-18:46:24.168740 7f0ad20006c0 Level-0 table #41: 0 bytes OK | ||||
| 2024/03/06-18:46:24.174891 7f0ad20006c0 Delete type=0 #39 | ||||
| 2024/03/06-18:46:24.182563 7f0ad20006c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:46:24.188703 7f0ad20006c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:22:09.739184 7f12ef7fe6c0 Recovering log #214 | ||||
| 2025/08/12-23:22:09.787438 7f12ef7fe6c0 Delete type=3 #212 | ||||
| 2025/08/12-23:22:09.787511 7f12ef7fe6c0 Delete type=0 #214 | ||||
| 2025/08/12-23:24:44.402280 7f12edffb6c0 Level-0 table #219: started | ||||
| 2025/08/12-23:24:44.402330 7f12edffb6c0 Level-0 table #219: 0 bytes OK | ||||
| 2025/08/12-23:24:44.408548 7f12edffb6c0 Delete type=0 #217 | ||||
| 2025/08/12-23:24:44.427555 7f12edffb6c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:24:44.427616 7f12edffb6c0 Manual compaction at level-1 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/atouts-feeriques/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/atouts-feeriques/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/avantages/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/avantages/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000042 | ||||
| MANIFEST-000220 | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:59:13.146641 7f0ad3e006c0 Recovering log #40 | ||||
| 2024/03/06-18:59:13.156095 7f0ad3e006c0 Delete type=3 #38 | ||||
| 2024/03/06-18:59:13.156156 7f0ad3e006c0 Delete type=0 #40 | ||||
| 2024/03/06-18:59:54.817526 7f0ad20006c0 Level-0 table #45: started | ||||
| 2024/03/06-18:59:54.817581 7f0ad20006c0 Level-0 table #45: 0 bytes OK | ||||
| 2024/03/06-18:59:54.823954 7f0ad20006c0 Delete type=0 #43 | ||||
| 2024/03/06-18:59:54.832163 7f0ad20006c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:59:54.832224 7f0ad20006c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:34:30.767828 7f12effff6c0 Recovering log #218 | ||||
| 2025/08/13-09:34:30.796027 7f12effff6c0 Delete type=3 #216 | ||||
| 2025/08/13-09:34:30.796112 7f12effff6c0 Delete type=0 #218 | ||||
| 2025/08/13-09:38:15.084910 7f12edffb6c0 Level-0 table #223: started | ||||
| 2025/08/13-09:38:15.084968 7f12edffb6c0 Level-0 table #223: 0 bytes OK | ||||
| 2025/08/13-09:38:15.091780 7f12edffb6c0 Delete type=0 #221 | ||||
| 2025/08/13-09:38:15.105825 7f12edffb6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:38:15.105919 7f12edffb6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:44:25.520679 7f0ad34006c0 Recovering log #36 | ||||
| 2024/03/06-18:44:25.530573 7f0ad34006c0 Delete type=3 #34 | ||||
| 2024/03/06-18:44:25.530645 7f0ad34006c0 Delete type=0 #36 | ||||
| 2024/03/06-18:46:24.149265 7f0ad20006c0 Level-0 table #41: started | ||||
| 2024/03/06-18:46:24.149287 7f0ad20006c0 Level-0 table #41: 0 bytes OK | ||||
| 2024/03/06-18:46:24.155653 7f0ad20006c0 Delete type=0 #39 | ||||
| 2024/03/06-18:46:24.161941 7f0ad20006c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:46:24.168702 7f0ad20006c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:22:09.532032 7f12ef7fe6c0 Recovering log #214 | ||||
| 2025/08/12-23:22:09.583613 7f12ef7fe6c0 Delete type=3 #212 | ||||
| 2025/08/12-23:22:09.583679 7f12ef7fe6c0 Delete type=0 #214 | ||||
| 2025/08/12-23:24:44.414597 7f12edffb6c0 Level-0 table #219: started | ||||
| 2025/08/12-23:24:44.414620 7f12edffb6c0 Level-0 table #219: 0 bytes OK | ||||
| 2025/08/12-23:24:44.420650 7f12edffb6c0 Delete type=0 #217 | ||||
| 2025/08/12-23:24:44.427592 7f12edffb6c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:24:44.427633 7f12edffb6c0 Manual compaction at level-1 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/avantages/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/avantages/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/capacites/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/capacites/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000042 | ||||
| MANIFEST-000220 | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:59:13.171182 7f0ad3e006c0 Recovering log #40 | ||||
| 2024/03/06-18:59:13.181656 7f0ad3e006c0 Delete type=3 #38 | ||||
| 2024/03/06-18:59:13.181712 7f0ad3e006c0 Delete type=0 #40 | ||||
| 2024/03/06-18:59:54.832282 7f0ad20006c0 Level-0 table #45: started | ||||
| 2024/03/06-18:59:54.832328 7f0ad20006c0 Level-0 table #45: 0 bytes OK | ||||
| 2024/03/06-18:59:54.838450 7f0ad20006c0 Delete type=0 #43 | ||||
| 2024/03/06-18:59:54.858561 7f0ad20006c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:59:54.858771 7f0ad20006c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:34:30.818936 7f12ef7fe6c0 Recovering log #218 | ||||
| 2025/08/13-09:34:30.835911 7f12ef7fe6c0 Delete type=3 #216 | ||||
| 2025/08/13-09:34:30.836028 7f12ef7fe6c0 Delete type=0 #218 | ||||
| 2025/08/13-09:38:15.091988 7f12edffb6c0 Level-0 table #223: started | ||||
| 2025/08/13-09:38:15.092048 7f12edffb6c0 Level-0 table #223: 0 bytes OK | ||||
| 2025/08/13-09:38:15.098923 7f12edffb6c0 Delete type=0 #221 | ||||
| 2025/08/13-09:38:15.105848 7f12edffb6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:38:15.105947 7f12edffb6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:44:25.544510 7f0ad34006c0 Recovering log #36 | ||||
| 2024/03/06-18:44:25.554577 7f0ad34006c0 Delete type=3 #34 | ||||
| 2024/03/06-18:44:25.554623 7f0ad34006c0 Delete type=0 #36 | ||||
| 2024/03/06-18:46:24.161959 7f0ad20006c0 Level-0 table #41: started | ||||
| 2024/03/06-18:46:24.161984 7f0ad20006c0 Level-0 table #41: 0 bytes OK | ||||
| 2024/03/06-18:46:24.168612 7f0ad20006c0 Delete type=0 #39 | ||||
| 2024/03/06-18:46:24.174998 7f0ad20006c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:46:24.182577 7f0ad20006c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:22:09.678492 7f12eeffd6c0 Recovering log #214 | ||||
| 2025/08/12-23:22:09.736918 7f12eeffd6c0 Delete type=3 #212 | ||||
| 2025/08/12-23:22:09.737004 7f12eeffd6c0 Delete type=0 #214 | ||||
| 2025/08/12-23:24:44.408642 7f12edffb6c0 Level-0 table #219: started | ||||
| 2025/08/12-23:24:44.408666 7f12edffb6c0 Level-0 table #219: 0 bytes OK | ||||
| 2025/08/12-23:24:44.414489 7f12edffb6c0 Delete type=0 #217 | ||||
| 2025/08/12-23:24:44.427576 7f12edffb6c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:24:44.427625 7f12edffb6c0 Manual compaction at level-1 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/capacites/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/capacites/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/competences/000206.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/competences/000206.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000042 | ||||
| MANIFEST-000223 | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:59:13.134222 7f0ad8a006c0 Recovering log #40 | ||||
| 2024/03/06-18:59:13.144640 7f0ad8a006c0 Delete type=3 #38 | ||||
| 2024/03/06-18:59:13.144704 7f0ad8a006c0 Delete type=0 #40 | ||||
| 2024/03/06-18:59:54.810298 7f0ad20006c0 Level-0 table #45: started | ||||
| 2024/03/06-18:59:54.810361 7f0ad20006c0 Level-0 table #45: 0 bytes OK | ||||
| 2024/03/06-18:59:54.817371 7f0ad20006c0 Delete type=0 #43 | ||||
| 2024/03/06-18:59:54.832145 7f0ad20006c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:59:54.832211 7f0ad20006c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:34:30.747816 7f12ee7fc6c0 Recovering log #221 | ||||
| 2025/08/13-09:34:30.764412 7f12ee7fc6c0 Delete type=3 #219 | ||||
| 2025/08/13-09:34:30.764577 7f12ee7fc6c0 Delete type=0 #221 | ||||
| 2025/08/13-09:38:15.078169 7f12edffb6c0 Level-0 table #226: started | ||||
| 2025/08/13-09:38:15.078262 7f12edffb6c0 Level-0 table #226: 0 bytes OK | ||||
| 2025/08/13-09:38:15.084668 7f12edffb6c0 Delete type=0 #224 | ||||
| 2025/08/13-09:38:15.105797 7f12edffb6c0 Manual compaction at level-0 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:38:15.105887 7f12edffb6c0 Manual compaction at level-1 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:44:25.508577 7f0ad94006c0 Recovering log #36 | ||||
| 2024/03/06-18:44:25.518629 7f0ad94006c0 Delete type=3 #34 | ||||
| 2024/03/06-18:44:25.518679 7f0ad94006c0 Delete type=0 #36 | ||||
| 2024/03/06-18:46:24.142406 7f0ad20006c0 Level-0 table #41: started | ||||
| 2024/03/06-18:46:24.142437 7f0ad20006c0 Level-0 table #41: 0 bytes OK | ||||
| 2024/03/06-18:46:24.149137 7f0ad20006c0 Delete type=0 #39 | ||||
| 2024/03/06-18:46:24.155816 7f0ad20006c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:46:24.161951 7f0ad20006c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:22:09.475992 7f12effff6c0 Recovering log #217 | ||||
| 2025/08/12-23:22:09.530135 7f12effff6c0 Delete type=3 #215 | ||||
| 2025/08/12-23:22:09.530186 7f12effff6c0 Delete type=0 #217 | ||||
| 2025/08/12-23:24:44.420774 7f12edffb6c0 Level-0 table #222: started | ||||
| 2025/08/12-23:24:44.420800 7f12edffb6c0 Level-0 table #222: 0 bytes OK | ||||
| 2025/08/12-23:24:44.427391 7f12edffb6c0 Delete type=0 #220 | ||||
| 2025/08/12-23:24:44.427605 7f12edffb6c0 Manual compaction at level-0 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:24:44.427641 7f12edffb6c0 Manual compaction at level-1 from '!folders!FBCujRu055QLePB2' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/competences/MANIFEST-000223
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/competences/MANIFEST-000223
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/desavantages/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/desavantages/000179.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000042 | ||||
| MANIFEST-000220 | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:59:13.158253 7f0ad8a006c0 Recovering log #40 | ||||
| 2024/03/06-18:59:13.169250 7f0ad8a006c0 Delete type=3 #38 | ||||
| 2024/03/06-18:59:13.169308 7f0ad8a006c0 Delete type=0 #40 | ||||
| 2024/03/06-18:59:54.824195 7f0ad20006c0 Level-0 table #45: started | ||||
| 2024/03/06-18:59:54.824253 7f0ad20006c0 Level-0 table #45: 0 bytes OK | ||||
| 2024/03/06-18:59:54.831973 7f0ad20006c0 Delete type=0 #43 | ||||
| 2024/03/06-18:59:54.832196 7f0ad20006c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:59:54.832239 7f0ad20006c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:34:30.798607 7f12eeffd6c0 Recovering log #218 | ||||
| 2025/08/13-09:34:30.815801 7f12eeffd6c0 Delete type=3 #216 | ||||
| 2025/08/13-09:34:30.815877 7f12eeffd6c0 Delete type=0 #218 | ||||
| 2025/08/13-09:38:15.099158 7f12edffb6c0 Level-0 table #223: started | ||||
| 2025/08/13-09:38:15.099214 7f12edffb6c0 Level-0 table #223: 0 bytes OK | ||||
| 2025/08/13-09:38:15.105555 7f12edffb6c0 Delete type=0 #221 | ||||
| 2025/08/13-09:38:15.105870 7f12edffb6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:38:15.105967 7f12edffb6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:44:25.532864 7f0ad94006c0 Recovering log #36 | ||||
| 2024/03/06-18:44:25.542781 7f0ad94006c0 Delete type=3 #34 | ||||
| 2024/03/06-18:44:25.542832 7f0ad94006c0 Delete type=0 #36 | ||||
| 2024/03/06-18:46:24.155844 7f0ad20006c0 Level-0 table #41: started | ||||
| 2024/03/06-18:46:24.155874 7f0ad20006c0 Level-0 table #41: 0 bytes OK | ||||
| 2024/03/06-18:46:24.161851 7f0ad20006c0 Delete type=0 #39 | ||||
| 2024/03/06-18:46:24.168712 7f0ad20006c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:46:24.175009 7f0ad20006c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:22:09.585932 7f12ee7fc6c0 Recovering log #214 | ||||
| 2025/08/12-23:22:09.675400 7f12ee7fc6c0 Delete type=3 #212 | ||||
| 2025/08/12-23:22:09.675482 7f12ee7fc6c0 Delete type=0 #214 | ||||
| 2025/08/12-23:24:44.434363 7f12edffb6c0 Level-0 table #219: started | ||||
| 2025/08/12-23:24:44.434400 7f12edffb6c0 Level-0 table #219: 0 bytes OK | ||||
| 2025/08/12-23:24:44.440785 7f12edffb6c0 Delete type=0 #217 | ||||
| 2025/08/12-23:24:44.453906 7f12edffb6c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:24:44.453946 7f12edffb6c0 Manual compaction at level-1 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/desavantages/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/desavantages/MANIFEST-000220
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/magie-sorts/000023.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/magie-sorts/000023.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										1
									
								
								packs/magie-sorts/CURRENT
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								packs/magie-sorts/CURRENT
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| MANIFEST-000019 | ||||
							
								
								
									
										15
									
								
								packs/magie-sorts/LOG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								packs/magie-sorts/LOG
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| 2025/08/13-09:34:30.858975 7f12eeffd6c0 Recovering log #17 | ||||
| 2025/08/13-09:34:30.873975 7f12eeffd6c0 Delete type=3 #15 | ||||
| 2025/08/13-09:34:30.874079 7f12eeffd6c0 Delete type=0 #17 | ||||
| 2025/08/13-09:38:15.112710 7f12edffb6c0 Level-0 table #22: started | ||||
| 2025/08/13-09:38:15.116893 7f12edffb6c0 Level-0 table #22: 7078 bytes OK | ||||
| 2025/08/13-09:38:15.124058 7f12edffb6c0 Delete type=0 #20 | ||||
| 2025/08/13-09:38:15.138090 7f12edffb6c0 Manual compaction at level-0 from '!folders!NE8l8XLXdVUw0aZm' @ 72057594037927935 : 1 .. '!items!zjQQhJpujpdbG4zl' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:38:15.138172 7f12edffb6c0 Manual compaction at level-1 from '!folders!NE8l8XLXdVUw0aZm' @ 72057594037927935 : 1 .. '!items!zjQQhJpujpdbG4zl' @ 0 : 0; will stop at '!items!z9898zcMia5dzrmb' @ 115 : 1 | ||||
| 2025/08/13-09:38:15.138186 7f12edffb6c0 Compacting 1@1 + 1@2 files | ||||
| 2025/08/13-09:38:15.144132 7f12edffb6c0 Generated table #23@1: 89 keys, 73291 bytes | ||||
| 2025/08/13-09:38:15.144201 7f12edffb6c0 Compacted 1@1 + 1@2 files => 73291 bytes | ||||
| 2025/08/13-09:38:15.151305 7f12edffb6c0 compacted to: files[ 0 0 1 0 0 0 0 ] | ||||
| 2025/08/13-09:38:15.151515 7f12edffb6c0 Delete type=2 #14 | ||||
| 2025/08/13-09:38:15.151820 7f12edffb6c0 Delete type=2 #22 | ||||
| 2025/08/13-09:38:15.158930 7f12edffb6c0 Manual compaction at level-1 from '!items!z9898zcMia5dzrmb' @ 115 : 1 .. '!items!zjQQhJpujpdbG4zl' @ 0 : 0; will stop at (end) | ||||
							
								
								
									
										8
									
								
								packs/magie-sorts/LOG.old
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								packs/magie-sorts/LOG.old
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| 2025/08/12-23:22:09.790283 7f12effff6c0 Recovering log #12 | ||||
| 2025/08/12-23:22:09.838285 7f12effff6c0 Delete type=3 #10 | ||||
| 2025/08/12-23:22:09.838351 7f12effff6c0 Delete type=0 #12 | ||||
| 2025/08/12-23:24:44.440907 7f12edffb6c0 Level-0 table #18: started | ||||
| 2025/08/12-23:24:44.440937 7f12edffb6c0 Level-0 table #18: 0 bytes OK | ||||
| 2025/08/12-23:24:44.447316 7f12edffb6c0 Delete type=0 #16 | ||||
| 2025/08/12-23:24:44.453918 7f12edffb6c0 Manual compaction at level-0 from '!folders!NE8l8XLXdVUw0aZm' @ 72057594037927935 : 1 .. '!items!zjQQhJpujpdbG4zl' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:24:44.453954 7f12edffb6c0 Manual compaction at level-1 from '!folders!NE8l8XLXdVUw0aZm' @ 72057594037927935 : 1 .. '!items!zjQQhJpujpdbG4zl' @ 0 : 0; will stop at (end) | ||||
							
								
								
									
										
											BIN
										
									
								
								packs/magie-sorts/MANIFEST-000019
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/magie-sorts/MANIFEST-000019
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/pouvoirs/000180.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/pouvoirs/000180.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000042 | ||||
| MANIFEST-000221 | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:59:13.209880 7f0ad8a006c0 Recovering log #40 | ||||
| 2024/03/06-18:59:13.219277 7f0ad8a006c0 Delete type=3 #38 | ||||
| 2024/03/06-18:59:13.219340 7f0ad8a006c0 Delete type=0 #40 | ||||
| 2024/03/06-18:59:54.845141 7f0ad20006c0 Level-0 table #45: started | ||||
| 2024/03/06-18:59:54.845181 7f0ad20006c0 Level-0 table #45: 0 bytes OK | ||||
| 2024/03/06-18:59:54.852067 7f0ad20006c0 Delete type=0 #43 | ||||
| 2024/03/06-18:59:54.858757 7f0ad20006c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:59:54.858784 7f0ad20006c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:34:30.899271 7f12ee7fc6c0 Recovering log #219 | ||||
| 2025/08/13-09:34:30.915571 7f12ee7fc6c0 Delete type=3 #217 | ||||
| 2025/08/13-09:34:30.915754 7f12ee7fc6c0 Delete type=0 #219 | ||||
| 2025/08/13-09:38:15.131400 7f12edffb6c0 Level-0 table #224: started | ||||
| 2025/08/13-09:38:15.131461 7f12edffb6c0 Level-0 table #224: 0 bytes OK | ||||
| 2025/08/13-09:38:15.137830 7f12edffb6c0 Delete type=0 #222 | ||||
| 2025/08/13-09:38:15.138132 7f12edffb6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:38:15.151971 7f12edffb6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:44:25.581915 7f0ad94006c0 Recovering log #36 | ||||
| 2024/03/06-18:44:25.592375 7f0ad94006c0 Delete type=3 #34 | ||||
| 2024/03/06-18:44:25.592428 7f0ad94006c0 Delete type=0 #36 | ||||
| 2024/03/06-18:46:24.182586 7f0ad20006c0 Level-0 table #41: started | ||||
| 2024/03/06-18:46:24.182611 7f0ad20006c0 Level-0 table #41: 0 bytes OK | ||||
| 2024/03/06-18:46:24.188586 7f0ad20006c0 Delete type=0 #39 | ||||
| 2024/03/06-18:46:24.195882 7f0ad20006c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:46:24.202340 7f0ad20006c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:22:09.898470 7f12ee7fc6c0 Recovering log #215 | ||||
| 2025/08/12-23:22:09.950596 7f12ee7fc6c0 Delete type=3 #213 | ||||
| 2025/08/12-23:22:09.950662 7f12ee7fc6c0 Delete type=0 #215 | ||||
| 2025/08/12-23:24:44.427852 7f12edffb6c0 Level-0 table #220: started | ||||
| 2025/08/12-23:24:44.427889 7f12edffb6c0 Level-0 table #220: 0 bytes OK | ||||
| 2025/08/12-23:24:44.434222 7f12edffb6c0 Delete type=0 #218 | ||||
| 2025/08/12-23:24:44.453893 7f12edffb6c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:24:44.453937 7f12edffb6c0 Manual compaction at level-1 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/pouvoirs/MANIFEST-000221
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/pouvoirs/MANIFEST-000221
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/profils/000220.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/profils/000220.log
									
									
									
									
									
										Normal file
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000042 | ||||
| MANIFEST-000218 | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2024/03/06-18:59:13.234663 7f0ad8a006c0 Recovering log #40 | ||||
| 2024/03/06-18:59:13.245554 7f0ad8a006c0 Delete type=3 #38 | ||||
| 2024/03/06-18:59:13.245629 7f0ad8a006c0 Delete type=0 #40 | ||||
| 2024/03/06-18:59:54.858867 7f0ad20006c0 Level-0 table #45: started | ||||
| 2024/03/06-18:59:54.858894 7f0ad20006c0 Level-0 table #45: 0 bytes OK | ||||
| 2024/03/06-18:59:54.871179 7f0ad20006c0 Delete type=0 #43 | ||||
| 2024/03/06-18:59:54.893571 7f0ad20006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:34:30.941134 7f12eeffd6c0 Recovering log #216 | ||||
| 2025/08/13-09:34:30.958072 7f12eeffd6c0 Delete type=3 #214 | ||||
| 2025/08/13-09:34:30.958189 7f12eeffd6c0 Delete type=0 #216 | ||||
| 2025/08/13-09:38:15.158957 7f12edffb6c0 Level-0 table #221: started | ||||
| 2025/08/13-09:38:15.159011 7f12edffb6c0 Level-0 table #221: 0 bytes OK | ||||
| 2025/08/13-09:38:15.165278 7f12edffb6c0 Delete type=0 #219 | ||||
| 2025/08/13-09:38:15.185186 7f12edffb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| 2024/03/06-18:44:25.607498 7f0ad94006c0 Recovering log #36 | ||||
| 2024/03/06-18:44:25.619089 7f0ad94006c0 Delete type=3 #34 | ||||
| 2024/03/06-18:44:25.619169 7f0ad94006c0 Delete type=0 #36 | ||||
| 2024/03/06-18:46:24.195903 7f0ad20006c0 Level-0 table #41: started | ||||
| 2024/03/06-18:46:24.195928 7f0ad20006c0 Level-0 table #41: 0 bytes OK | ||||
| 2024/03/06-18:46:24.202215 7f0ad20006c0 Delete type=0 #39 | ||||
| 2024/03/06-18:46:24.209558 7f0ad20006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:22:10.001919 7f12eeffd6c0 Recovering log #212 | ||||
| 2025/08/12-23:22:10.057666 7f12eeffd6c0 Delete type=3 #210 | ||||
| 2025/08/12-23:22:10.057755 7f12eeffd6c0 Delete type=0 #212 | ||||
| 2025/08/12-23:24:44.454051 7f12edffb6c0 Level-0 table #217: started | ||||
| 2025/08/12-23:24:44.454080 7f12edffb6c0 Level-0 table #217: 0 bytes OK | ||||
| 2025/08/12-23:24:44.461512 7f12edffb6c0 Delete type=0 #215 | ||||
| 2025/08/12-23:24:44.481330 7f12edffb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/profils/MANIFEST-000218
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/profils/MANIFEST-000218
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								packs/scenes/000148.ldb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packs/scenes/000148.ldb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								packs/scenes/000191.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packs/scenes/000191.log
									
									
									
									
									
										Normal file
									
								
							| @@ -1 +1 @@ | ||||
| MANIFEST-000010 | ||||
| MANIFEST-000189 | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:59:13.247253 7f0ad3e006c0 Recovering log #8 | ||||
| 2024/03/06-18:59:13.257389 7f0ad3e006c0 Delete type=3 #6 | ||||
| 2024/03/06-18:59:13.257446 7f0ad3e006c0 Delete type=0 #8 | ||||
| 2024/03/06-18:59:54.880924 7f0ad20006c0 Level-0 table #13: started | ||||
| 2024/03/06-18:59:54.880949 7f0ad20006c0 Level-0 table #13: 0 bytes OK | ||||
| 2024/03/06-18:59:54.887230 7f0ad20006c0 Delete type=0 #11 | ||||
| 2024/03/06-18:59:54.893597 7f0ad20006c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:59:54.893637 7f0ad20006c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:34:30.962421 7f12ef7fe6c0 Recovering log #187 | ||||
| 2025/08/13-09:34:30.983901 7f12ef7fe6c0 Delete type=3 #185 | ||||
| 2025/08/13-09:34:30.983970 7f12ef7fe6c0 Delete type=0 #187 | ||||
| 2025/08/13-09:38:15.165535 7f12edffb6c0 Level-0 table #192: started | ||||
| 2025/08/13-09:38:15.165599 7f12edffb6c0 Level-0 table #192: 0 bytes OK | ||||
| 2025/08/13-09:38:15.172985 7f12edffb6c0 Delete type=0 #190 | ||||
| 2025/08/13-09:38:15.185225 7f12edffb6c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) | ||||
| 2025/08/13-09:38:15.185290 7f12edffb6c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| 2024/03/06-18:44:25.621882 7f0ad34006c0 Recovering log #4 | ||||
| 2024/03/06-18:44:25.632172 7f0ad34006c0 Delete type=3 #2 | ||||
| 2024/03/06-18:44:25.632258 7f0ad34006c0 Delete type=0 #4 | ||||
| 2024/03/06-18:46:24.202350 7f0ad20006c0 Level-0 table #9: started | ||||
| 2024/03/06-18:46:24.202372 7f0ad20006c0 Level-0 table #9: 0 bytes OK | ||||
| 2024/03/06-18:46:24.209447 7f0ad20006c0 Delete type=0 #7 | ||||
| 2024/03/06-18:46:24.216156 7f0ad20006c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) | ||||
| 2024/03/06-18:46:24.216180 7f0ad20006c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:22:10.060101 7f12effff6c0 Recovering log #183 | ||||
| 2025/08/12-23:22:10.105374 7f12effff6c0 Delete type=3 #181 | ||||
| 2025/08/12-23:22:10.105452 7f12effff6c0 Delete type=0 #183 | ||||
| 2025/08/12-23:24:44.474162 7f12edffb6c0 Level-0 table #188: started | ||||
| 2025/08/12-23:24:44.474198 7f12edffb6c0 Level-0 table #188: 0 bytes OK | ||||
| 2025/08/12-23:24:44.481148 7f12edffb6c0 Delete type=0 #186 | ||||
| 2025/08/12-23:24:44.481384 7f12edffb6c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) | ||||
| 2025/08/12-23:24:44.481409 7f12edffb6c0 Manual compaction at level-1 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end) | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user