Compare commits
	
		
			15 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 | 
							
								
								
									
										
											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  | 
@@ -17,7 +17,8 @@
 | 
				
			|||||||
      "fee": "Fée",
 | 
					      "fee": "Fée",
 | 
				
			||||||
      "pouvoir": "Pouvoir",
 | 
					      "pouvoir": "Pouvoir",
 | 
				
			||||||
      "profil": "Profil",
 | 
					      "profil": "Profil",
 | 
				
			||||||
      "protection": "Protection"
 | 
					      "protection": "Protection",
 | 
				
			||||||
 | 
					      "sort": "Sort"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -12,7 +12,7 @@ export class HeritiersActorPNJSheet extends HeritiersActorSheet {
 | 
				
			|||||||
  /** @override */
 | 
					  /** @override */
 | 
				
			||||||
  static get defaultOptions() {
 | 
					  static get defaultOptions() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return mergeObject(super.defaultOptions, {
 | 
					    return foundry.utils.mergeObject(super.defaultOptions, {
 | 
				
			||||||
      classes: ["fvtt-les-heritiers", "sheet", "actor"],
 | 
					      classes: ["fvtt-les-heritiers", "sheet", "actor"],
 | 
				
			||||||
      template: "systems/fvtt-les-heritiers/templates/actor-pnj-sheet.html",
 | 
					      template: "systems/fvtt-les-heritiers/templates/actor-pnj-sheet.html",
 | 
				
			||||||
      width: 780,
 | 
					      width: 780,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,12 +6,12 @@
 | 
				
			|||||||
import { HeritiersUtility } from "./heritiers-utility.js";
 | 
					import { HeritiersUtility } from "./heritiers-utility.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* -------------------------------------------- */
 | 
					/* -------------------------------------------- */
 | 
				
			||||||
export class HeritiersActorSheet extends ActorSheet {
 | 
					export class HeritiersActorSheet extends foundry.appv1.sheets.ActorSheet {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /** @override */
 | 
					  /** @override */
 | 
				
			||||||
  static get defaultOptions() {
 | 
					  static get defaultOptions() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return mergeObject(super.defaultOptions, {
 | 
					    return foundry.utils.mergeObject(super.defaultOptions, {
 | 
				
			||||||
      classes: ["fvtt-les-heritiers", "sheet", "actor"],
 | 
					      classes: ["fvtt-les-heritiers", "sheet", "actor"],
 | 
				
			||||||
      template: "systems/fvtt-les-heritiers/templates/actor-sheet.html",
 | 
					      template: "systems/fvtt-les-heritiers/templates/actor-sheet.html",
 | 
				
			||||||
      width: 780,
 | 
					      width: 780,
 | 
				
			||||||
@@ -24,7 +24,7 @@ export class HeritiersActorSheet extends ActorSheet {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  async getData() {
 | 
					  async getData() {
 | 
				
			||||||
    const objectData = duplicate(this.object)    
 | 
					    const objectData = foundry.utils.duplicate(this.object)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let formData = {
 | 
					    let formData = {
 | 
				
			||||||
      title: this.title,
 | 
					      title: this.title,
 | 
				
			||||||
@@ -38,31 +38,33 @@ export class HeritiersActorSheet extends ActorSheet {
 | 
				
			|||||||
      effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
 | 
					      effects: this.object.effects.map(e => foundry.utils.deepClone(e.data)),
 | 
				
			||||||
      limited: this.object.limited,
 | 
					      limited: this.object.limited,
 | 
				
			||||||
      skills: this.actor.getSkills(),
 | 
					      skills: this.actor.getSkills(),
 | 
				
			||||||
      utileSkillsMental :this.actor.organizeUtileSkills("mental"),
 | 
					      utileSkillsMental: this.actor.organizeUtileSkills("mental"),
 | 
				
			||||||
      utileSkillsPhysical :this.actor.organizeUtileSkills("physical"),
 | 
					      utileSkillsPhysical: this.actor.organizeUtileSkills("physical"),
 | 
				
			||||||
      futileSkills :this.actor.organizeFutileSkills(),
 | 
					      competencesMagie: HeritiersUtility.getCompetencesMagie(),
 | 
				
			||||||
 | 
					      futileSkills: this.actor.organizeFutileSkills(),
 | 
				
			||||||
      contacts: this.actor.organizeContacts(),
 | 
					      contacts: this.actor.organizeContacts(),
 | 
				
			||||||
      armes: duplicate(this.actor.getWeapons()),
 | 
					      armes: foundry.utils.duplicate(this.actor.getWeapons()),
 | 
				
			||||||
      monnaies: duplicate(this.actor.getMonnaies()),
 | 
					      monnaies: foundry.utils.duplicate(this.actor.getMonnaies()),
 | 
				
			||||||
      pouvoirs: duplicate(this.actor.getPouvoirs()),
 | 
					      pouvoirs: foundry.utils.duplicate(this.actor.getPouvoirs()),
 | 
				
			||||||
      fee: duplicate(this.actor.getFee() || {} ),
 | 
					      fee: foundry.utils.duplicate(this.actor.getFee() || {}),
 | 
				
			||||||
      protections: duplicate(this.actor.getArmors()),
 | 
					      protections: foundry.utils.duplicate(this.actor.getArmors()),
 | 
				
			||||||
      combat: this.actor.getCombatValues(),      
 | 
					      combat: this.actor.getCombatValues(),
 | 
				
			||||||
      equipements: duplicate(this.actor.getEquipments()),
 | 
					      equipements: foundry.utils.duplicate(this.actor.getEquipments()),
 | 
				
			||||||
      avantages: duplicate(this.actor.getAvantages()),
 | 
					      avantages: foundry.utils.duplicate(this.actor.getAvantages()),
 | 
				
			||||||
      atouts: duplicate(this.actor.getAtouts()),
 | 
					      atouts: foundry.utils.duplicate(this.actor.getAtouts()),
 | 
				
			||||||
      capacites: duplicate(this.actor.getCapacites()),
 | 
					      capacites: foundry.utils.duplicate(this.actor.getCapacites()),
 | 
				
			||||||
      desavantages: duplicate(this.actor.getDesavantages()),
 | 
					      desavantages: foundry.utils.duplicate(this.actor.getDesavantages()),
 | 
				
			||||||
      profils: duplicate(this.actor.getProfils()),
 | 
					      profils: foundry.utils.duplicate(this.actor.getProfils()),
 | 
				
			||||||
      pvMalus: this.actor.getPvMalus(),      
 | 
					      pvMalus: this.actor.getPvMalus(),
 | 
				
			||||||
      heritage: game.settings.get("fvtt-les-heritiers", "heritiers-heritage"),
 | 
					      heritage: game.settings.get("fvtt-les-heritiers", "heritiers-heritage"),
 | 
				
			||||||
      initiative: this.actor.getFlag("world", "last-initiative") || -1,
 | 
					      initiative: this.actor.getFlag("world", "last-initiative") || -1,
 | 
				
			||||||
      description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
 | 
					      description: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.description, { async: true }),
 | 
				
			||||||
      revesetranges: await TextEditor.enrichHTML(this.object.system.biodata.revesetranges, {async: true}),
 | 
					      revesetranges: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.revesetranges, { async: true }),
 | 
				
			||||||
      secretsdecouverts: await TextEditor.enrichHTML(this.object.system.biodata.secretsdecouverts, {async: true}),
 | 
					      secretsdecouverts: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.secretsdecouverts, { async: true }),
 | 
				
			||||||
      questions: await TextEditor.enrichHTML(this.object.system.biodata.questions, {async: true}),
 | 
					      questions: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.questions, { async: true }),
 | 
				
			||||||
      habitat: await TextEditor.enrichHTML(this.object.system.biodata.habitat, {async: true}),
 | 
					      habitat: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.habitat, { async: true }),
 | 
				
			||||||
      playernotes: await TextEditor.enrichHTML(this.object.system.biodata.playernotes, {async: true}),
 | 
					      playernotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(this.object.system.biodata.playernotes, { async: true }),
 | 
				
			||||||
 | 
					      magieList: this.actor.prepareMagie(),
 | 
				
			||||||
      options: this.options,
 | 
					      options: this.options,
 | 
				
			||||||
      owner: this.document.isOwner,
 | 
					      owner: this.document.isOwner,
 | 
				
			||||||
      editScore: this.options.editScore,
 | 
					      editScore: this.options.editScore,
 | 
				
			||||||
@@ -120,14 +122,14 @@ export class HeritiersActorSheet extends ActorSheet {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // Everything below here is only needed if the sheet is editable
 | 
					    // Everything below here is only needed if the sheet is editable
 | 
				
			||||||
    if (!this.options.editable) return;
 | 
					    if (!this.options.editable) return;
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    // Update Inventory Item
 | 
					    // Update Inventory Item
 | 
				
			||||||
    html.find('.item-edit').click(ev => {
 | 
					    html.find('.item-edit').click(ev => {
 | 
				
			||||||
      const li = $(ev.currentTarget).parents(".item")
 | 
					      const li = $(ev.currentTarget).parents(".item")
 | 
				
			||||||
      let itemId = li.data("item-id")
 | 
					      let itemId = li.data("item-id")
 | 
				
			||||||
      const item = this.actor.items.get( itemId )
 | 
					      const item = this.actor.items.get(itemId)
 | 
				
			||||||
      item.sheet.render(true)
 | 
					      item.sheet.render(true)
 | 
				
			||||||
    })      
 | 
					    })
 | 
				
			||||||
    // Delete Inventory Item
 | 
					    // Delete Inventory Item
 | 
				
			||||||
    html.find('.item-delete').click(ev => {
 | 
					    html.find('.item-delete').click(ev => {
 | 
				
			||||||
      const li = $(ev.currentTarget).parents(".item");
 | 
					      const li = $(ev.currentTarget).parents(".item");
 | 
				
			||||||
@@ -135,8 +137,8 @@ export class HeritiersActorSheet extends ActorSheet {
 | 
				
			|||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('.edit-item-data').change(ev => {
 | 
					    html.find('.edit-item-data').change(ev => {
 | 
				
			||||||
      const li = $(ev.currentTarget).parents(".item")
 | 
					      const li = $(ev.currentTarget).parents(".item")
 | 
				
			||||||
      let itemId    = li.data("item-id")
 | 
					      let itemId = li.data("item-id")
 | 
				
			||||||
      let itemType  = li.data("item-type")
 | 
					      let itemType = li.data("item-type")
 | 
				
			||||||
      let itemField = $(ev.currentTarget).data("item-field")
 | 
					      let itemField = $(ev.currentTarget).data("item-field")
 | 
				
			||||||
      let dataType = $(ev.currentTarget).data("dtype")
 | 
					      let dataType = $(ev.currentTarget).data("dtype")
 | 
				
			||||||
      let value = ev.currentTarget.value
 | 
					      let value = ev.currentTarget.value
 | 
				
			||||||
@@ -149,17 +151,17 @@ export class HeritiersActorSheet extends ActorSheet {
 | 
				
			|||||||
      let value = Number($(event.currentTarget).data("adversite-value"))
 | 
					      let value = Number($(event.currentTarget).data("adversite-value"))
 | 
				
			||||||
      this.actor.incDecAdversite(adv, value)
 | 
					      this.actor.incDecAdversite(adv, value)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    html.find('.quantity-modify').click(event => {
 | 
					    html.find('.quantity-modify').click(event => {
 | 
				
			||||||
      const li = $(event.currentTarget).parents(".item")
 | 
					      const li = $(event.currentTarget).parents(".item")
 | 
				
			||||||
      const value = Number($(event.currentTarget).data("quantite-value"))
 | 
					      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) => {
 | 
					    html.find('.roll-initiative').click((event) => {
 | 
				
			||||||
      this.actor.rollInitiative()
 | 
					      this.actor.rollInitiative()
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    html.find('.roll-carac').click((event) => {
 | 
					    html.find('.roll-carac').click((event) => {
 | 
				
			||||||
      const key = $(event.currentTarget).data("key")
 | 
					      const key = $(event.currentTarget).data("key")
 | 
				
			||||||
      this.actor.rollCarac(key, false)
 | 
					      this.actor.rollCarac(key, false)
 | 
				
			||||||
@@ -167,37 +169,42 @@ export class HeritiersActorSheet extends ActorSheet {
 | 
				
			|||||||
    html.find('.roll-rang').click((event) => {
 | 
					    html.find('.roll-rang').click((event) => {
 | 
				
			||||||
      const key = $(event.currentTarget).data("rang-key")
 | 
					      const key = $(event.currentTarget).data("rang-key")
 | 
				
			||||||
      this.actor.rollRang(key, false)
 | 
					      this.actor.rollRang(key, false)
 | 
				
			||||||
    })    
 | 
					    })
 | 
				
			||||||
    html.find('.roll-root-competence').click((event) => {
 | 
					    html.find('.roll-root-competence').click((event) => {
 | 
				
			||||||
      const compKey = $(event.currentTarget).data("attr-key")
 | 
					      const compKey = $(event.currentTarget).data("attr-key")
 | 
				
			||||||
      this.actor.rollRootCompetence(compKey)
 | 
					      this.actor.rollRootCompetence(compKey)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('.roll-competence').click((event) => {
 | 
					    html.find('.roll-competence').click((event) => {
 | 
				
			||||||
      const li = $(event.currentTarget).parents(".item")
 | 
					      const li = $(event.currentTarget).parents(".item")
 | 
				
			||||||
      let compId  = li.data("item-id")
 | 
					      let compId = li.data("item-id")
 | 
				
			||||||
      this.actor.rollCompetence(compId)
 | 
					      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) => {
 | 
					    html.find('.roll-attaque-arme').click((event) => {
 | 
				
			||||||
      const li = $(event.currentTarget).parents(".item")
 | 
					      const li = $(event.currentTarget).parents(".item")
 | 
				
			||||||
      let armeId  = li.data("item-id")
 | 
					      let armeId = li.data("item-id")
 | 
				
			||||||
      this.actor.rollAttaqueArme(armeId)
 | 
					      this.actor.rollAttaqueArme(armeId)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('.roll-attaque-brutale-arme').click((event) => {
 | 
					    html.find('.roll-attaque-brutale-arme').click((event) => {
 | 
				
			||||||
      const li = $(event.currentTarget).parents(".item")
 | 
					      const li = $(event.currentTarget).parents(".item")
 | 
				
			||||||
      let armeId  = li.data("item-id")
 | 
					      let armeId = li.data("item-id")
 | 
				
			||||||
      this.actor.rollAttaqueBrutaleArme(armeId)
 | 
					      this.actor.rollAttaqueBrutaleArme(armeId)
 | 
				
			||||||
    })    
 | 
					    })
 | 
				
			||||||
    html.find('.roll-attaque-charge-arme').click((event) => {
 | 
					    html.find('.roll-attaque-charge-arme').click((event) => {
 | 
				
			||||||
      const li = $(event.currentTarget).parents(".item")
 | 
					      const li = $(event.currentTarget).parents(".item")
 | 
				
			||||||
      let armeId  = li.data("item-id")
 | 
					      let armeId = li.data("item-id")
 | 
				
			||||||
      this.actor.rollAttaqueChargeArme(armeId)
 | 
					      this.actor.rollAttaqueChargeArme(armeId)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('.roll-assomer-arme').click((event) => {
 | 
					    html.find('.roll-assomer-arme').click((event) => {
 | 
				
			||||||
      const li = $(event.currentTarget).parents(".item")
 | 
					      const li = $(event.currentTarget).parents(".item")
 | 
				
			||||||
      let armeId  = li.data("item-id")
 | 
					      let armeId = li.data("item-id")
 | 
				
			||||||
      this.actor.rollAssomerArme(armeId)
 | 
					      this.actor.rollAssomerArme(armeId)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    html.find('.roll-pouvoir').click((event) => {
 | 
					    html.find('.roll-pouvoir').click((event) => {
 | 
				
			||||||
      const li = $(event.currentTarget).parents(".item")
 | 
					      const li = $(event.currentTarget).parents(".item")
 | 
				
			||||||
      let pouvoirId = li.data("item-id")
 | 
					      let pouvoirId = li.data("item-id")
 | 
				
			||||||
@@ -209,21 +216,29 @@ export class HeritiersActorSheet extends ActorSheet {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    html.find('.item-add').click((event) => {
 | 
					    html.find('.item-add').click((event) => {
 | 
				
			||||||
      const itemType = $(event.currentTarget).data("type")
 | 
					      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 })
 | 
					      this.actor.createEmbeddedDocuments('Item', [{ name: `Nouveau ${itemType}`, type: itemType }], { renderSheet: true })
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    html.find('.lock-unlock-sheet').click((event) => {
 | 
					    html.find('.lock-unlock-sheet').click((event) => {
 | 
				
			||||||
      this.options.editScore = !this.options.editScore;
 | 
					      this.options.editScore = !this.options.editScore;
 | 
				
			||||||
      this.render(true);
 | 
					      this.render(true);
 | 
				
			||||||
    });    
 | 
					    });
 | 
				
			||||||
    html.find('.item-equip').click(ev => {
 | 
					    html.find('.item-equip').click(ev => {
 | 
				
			||||||
      const li = $(ev.currentTarget).parents(".item");
 | 
					      const li = $(ev.currentTarget).parents(".item");
 | 
				
			||||||
      this.actor.equipItem( li.data("item-id") );
 | 
					      this.actor.equipItem(li.data("item-id"));
 | 
				
			||||||
      this.render(true);      
 | 
					      this.render(true);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  /** @override */
 | 
					  /** @override */
 | 
				
			||||||
  setPosition(options = {}) {
 | 
					  setPosition(options = {}) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,8 +17,8 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * Override the create() function to provide additional SoS functionality.
 | 
					   * Override the create() function to provide additional SoS functionality.
 | 
				
			||||||
   *
 | 
					   *
 | 
				
			||||||
   * This overrided create() function adds initial items 
 | 
					   * This overrided create() function adds initial items
 | 
				
			||||||
   * Namely: Basic skills, money, 
 | 
					   * Namely: Basic skills, money,
 | 
				
			||||||
   *
 | 
					   *
 | 
				
			||||||
   * @param {Object} data        Barebones actor data which this function adds onto.
 | 
					   * @param {Object} data        Barebones actor data which this function adds onto.
 | 
				
			||||||
   * @param {Object} options     (Unused) Additional options which customize the creation workflow.
 | 
					   * @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")
 | 
					      const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
 | 
				
			||||||
      data.items = []
 | 
					      data.items = []
 | 
				
			||||||
      for (let skill of skills) {
 | 
					      for (let skill of skills) {
 | 
				
			||||||
        if (skill.system.categorie == "utile") {
 | 
					        if (skill.system.categorie == "utile" && skill.system.profil != "magie") {
 | 
				
			||||||
          data.items.push(skill.toObject())
 | 
					          data.items.push(skill.toObject())
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -54,7 +54,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  prepareArme(arme) {
 | 
					  prepareArme(arme) {
 | 
				
			||||||
    arme = duplicate(arme)
 | 
					    arme = foundry.utils.duplicate(arme)
 | 
				
			||||||
    arme.system.isMelee = HeritiersUtility.isArmeMelee(arme)
 | 
					    arme.system.isMelee = HeritiersUtility.isArmeMelee(arme)
 | 
				
			||||||
    return arme
 | 
					    return arme
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -86,7 +86,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -----------------------  --------------------- */
 | 
					  /* -----------------------  --------------------- */
 | 
				
			||||||
  addMember(actorId) {
 | 
					  addMember(actorId) {
 | 
				
			||||||
    let members = duplicate(this.system.members)
 | 
					    let members = foundry.utils.duplicate(this.system.members)
 | 
				
			||||||
    members.push({ id: actorId })
 | 
					    members.push({ id: actorId })
 | 
				
			||||||
    this.update({ 'system.members': members })
 | 
					    this.update({ 'system.members': members })
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -138,7 +138,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
    let pouvoirs = []
 | 
					    let pouvoirs = []
 | 
				
			||||||
    for (let item of this.items) {
 | 
					    for (let item of this.items) {
 | 
				
			||||||
      if (item.type == "pouvoir") {
 | 
					      if (item.type == "pouvoir") {
 | 
				
			||||||
        let itemObj = duplicate(item)
 | 
					        let itemObj = foundry.utils.duplicate(item)
 | 
				
			||||||
        itemObj.maxUsage = this.getPouvoirUsageMax(item)
 | 
					        itemObj.maxUsage = this.getPouvoirUsageMax(item)
 | 
				
			||||||
        pouvoirs.push(itemObj)
 | 
					        pouvoirs.push(itemObj)
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -146,12 +146,49 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
    HeritiersUtility.sortArrayObjectsByName(pouvoirs)
 | 
					    HeritiersUtility.sortArrayObjectsByName(pouvoirs)
 | 
				
			||||||
    return 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() {
 | 
					  getSkills() {
 | 
				
			||||||
    let comp = []
 | 
					    let comp = []
 | 
				
			||||||
    for (let item of this.items) {
 | 
					    for (let item of this.items) {
 | 
				
			||||||
      item = duplicate(item)
 | 
					      item = foundry.utils.duplicate(item)
 | 
				
			||||||
      if (item.type == "competence") {
 | 
					      if (item.type == "competence") {
 | 
				
			||||||
        comp.push(item)
 | 
					        comp.push(item)
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -171,6 +208,28 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
    item.specList = specList.toString()
 | 
					    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") {
 | 
					  organizeUtileSkills(kind = "mental") {
 | 
				
			||||||
    let comp = {}
 | 
					    let comp = {}
 | 
				
			||||||
@@ -192,6 +251,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    return Object.fromEntries(Object.entries(comp).sort())
 | 
					    return Object.fromEntries(Object.entries(comp).sort())
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  organizeContacts() {
 | 
					  organizeContacts() {
 | 
				
			||||||
    let contactList = {}
 | 
					    let contactList = {}
 | 
				
			||||||
@@ -258,12 +318,37 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  async prepareData() {
 | 
					  async prepareData() {
 | 
				
			||||||
    super.prepareData();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let pvMax = (this.system.caracteristiques.con.rang * 3) + 9 + this.system.pv.mod
 | 
					    let pvMax = (this.system.caracteristiques.con.rang * 3) + 9 + this.system.pv.mod
 | 
				
			||||||
    if (this.system.pv.max != pvMax) {
 | 
					    if (this.system.pv.max != pvMax) {
 | 
				
			||||||
      this.update({ '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
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
@@ -285,7 +370,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
  getItemById(id) {
 | 
					  getItemById(id) {
 | 
				
			||||||
    let item = this.items.find(item => item.id == id);
 | 
					    let item = this.items.find(item => item.id == id);
 | 
				
			||||||
    if (item) {
 | 
					    if (item) {
 | 
				
			||||||
      item = duplicate(item)
 | 
					      item = foundry.utils.duplicate(item)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return item;
 | 
					    return item;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -343,7 +428,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  getCarac(attrKey) {
 | 
					  getCarac(attrKey) {
 | 
				
			||||||
    return duplicate(this.system.caracteristiques)
 | 
					    return foundry.utils.duplicate(this.system.caracteristiques)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
@@ -364,13 +449,13 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
  getSubActors() {
 | 
					  getSubActors() {
 | 
				
			||||||
    let subActors = [];
 | 
					    let subActors = [];
 | 
				
			||||||
    for (let id of this.system.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;
 | 
					    return subActors;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  async addSubActor(subActorId) {
 | 
					  async addSubActor(subActorId) {
 | 
				
			||||||
    let subActors = duplicate(this.system.subactors);
 | 
					    let subActors = foundry.utils.duplicate(this.system.subactors);
 | 
				
			||||||
    subActors.push(subActorId);
 | 
					    subActors.push(subActorId);
 | 
				
			||||||
    await this.update({ 'system.subactors': subActors });
 | 
					    await this.update({ 'system.subactors': subActors });
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -392,11 +477,12 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  async incDecAdversite(adv, incDec = 0) {
 | 
					  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] += Number(incDec)
 | 
				
			||||||
    adversite[adv] = Math.max(adversite[adv], 0)
 | 
					    adversite[adv] = Math.max(adversite[adv], 0)
 | 
				
			||||||
    this.update({ 'system.adversite': adversite })
 | 
					    this.update({ 'system.adversite': adversite })
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  async incDecQuantity(objetId, incDec = 0) {
 | 
					  async incDecQuantity(objetId, incDec = 0) {
 | 
				
			||||||
    let objetQ = this.items.get(objetId)
 | 
					    let objetQ = this.items.get(objetId)
 | 
				
			||||||
@@ -439,7 +525,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  async setPredilectionUsed(compId, predIdx) {
 | 
					  async setPredilectionUsed(compId, predIdx) {
 | 
				
			||||||
    let comp = this.items.get(compId)
 | 
					    let comp = this.items.get(compId)
 | 
				
			||||||
    let pred = duplicate(comp.system.predilections)
 | 
					    let pred = foundry.utils.duplicate(comp.system.predilections)
 | 
				
			||||||
    pred[predIdx].used = true
 | 
					    pred[predIdx].used = true
 | 
				
			||||||
    await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
 | 
					    await this.updateEmbeddedDocuments('Item', [{ _id: compId, 'system.predilections': pred }])
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -461,7 +547,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
      if (arme.system.totalDefensif > maxDef) {
 | 
					      if (arme.system.totalDefensif > maxDef) {
 | 
				
			||||||
        maxDef = arme.system.totalDefensif
 | 
					        maxDef = arme.system.totalDefensif
 | 
				
			||||||
        bestArme = duplicate(arme)
 | 
					        bestArme = foundry.utils.duplicate(arme)
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return bestArme
 | 
					    return bestArme
 | 
				
			||||||
@@ -476,7 +562,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
        for (let auto of talent.system.automations) {
 | 
					        for (let auto of talent.system.automations) {
 | 
				
			||||||
          if (auto.eventtype === "prepare-roll") {
 | 
					          if (auto.eventtype === "prepare-roll") {
 | 
				
			||||||
            if (auto.competence.toLowerCase() == competence.name.toLowerCase()) {
 | 
					            if (auto.competence.toLowerCase() == competence.name.toLowerCase()) {
 | 
				
			||||||
              talent = duplicate(talent)
 | 
					              talent = foundry.utils.duplicate(talent)
 | 
				
			||||||
              talent.system.bonus = auto.bonus
 | 
					              talent.system.bonus = auto.bonus
 | 
				
			||||||
              talent.system.baCost = auto.baCost
 | 
					              talent.system.baCost = auto.baCost
 | 
				
			||||||
              talents.push(talent)
 | 
					              talents.push(talent)
 | 
				
			||||||
@@ -558,12 +644,12 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
    rollData.rulesMalus.push(this.getPvMalus())
 | 
					    rollData.rulesMalus.push(this.getPvMalus())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (compId) {
 | 
					    if (compId) {
 | 
				
			||||||
      rollData.competence = duplicate(this.items.get(compId) || {})
 | 
					      rollData.competence = foundry.utils.duplicate(this.items.get(compId) || {})
 | 
				
			||||||
      this.prepareUtileSkill(rollData.competence)
 | 
					      this.prepareUtileSkill(rollData.competence)
 | 
				
			||||||
      rollData.actionImg = rollData.competence?.img
 | 
					      rollData.actionImg = rollData.competence?.img
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (compName) {
 | 
					    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) {
 | 
					      if (rollData.competence?.name) {
 | 
				
			||||||
        this.prepareUtileSkill(rollData.competence)
 | 
					        this.prepareUtileSkill(rollData.competence)
 | 
				
			||||||
        rollData.actionImg = rollData.competence?.img
 | 
					        rollData.actionImg = rollData.competence?.img
 | 
				
			||||||
@@ -627,11 +713,67 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
    rollDialog.render(true)
 | 
					    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) {
 | 
					  async rollAttaqueArme(armeId) {
 | 
				
			||||||
    let arme = this.items.get(armeId)
 | 
					    let arme = this.items.get(armeId)
 | 
				
			||||||
    if (arme) {
 | 
					    if (arme) {
 | 
				
			||||||
      arme = duplicate(arme)
 | 
					      arme = foundry.utils.duplicate(arme)
 | 
				
			||||||
      arme.system.isMelee = HeritiersUtility.isArmeMelee(arme)
 | 
					      arme.system.isMelee = HeritiersUtility.isArmeMelee(arme)
 | 
				
			||||||
      let competenceName = "Tir"
 | 
					      let competenceName = "Tir"
 | 
				
			||||||
      let key = "prec"
 | 
					      let key = "prec"
 | 
				
			||||||
@@ -664,7 +806,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
      let rollData = this.getCommonRollData(undefined, competenceName)
 | 
					      let rollData = this.getCommonRollData(undefined, competenceName)
 | 
				
			||||||
      rollData.carac = this.system.caracteristiques[key]
 | 
					      rollData.carac = this.system.caracteristiques[key]
 | 
				
			||||||
      rollData.caracKey = key
 | 
					      rollData.caracKey = key
 | 
				
			||||||
      rollData.arme = duplicate(arme)
 | 
					      rollData.arme = foundry.utils.duplicate(arme)
 | 
				
			||||||
      rollData.mode = "attaquebrutale"
 | 
					      rollData.mode = "attaquebrutale"
 | 
				
			||||||
      rollData.armes = this.getOtherMeleeWeapons(arme)
 | 
					      rollData.armes = this.getOtherMeleeWeapons(arme)
 | 
				
			||||||
      rollData.rulesMalus.push({ name: "Attaque brutale", value: -2 })
 | 
					      rollData.rulesMalus.push({ name: "Attaque brutale", value: -2 })
 | 
				
			||||||
@@ -682,7 +824,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
      let rollData = this.getCommonRollData(undefined, pireCompetence.name)
 | 
					      let rollData = this.getCommonRollData(undefined, pireCompetence.name)
 | 
				
			||||||
      rollData.carac = this.system.caracteristiques[key]
 | 
					      rollData.carac = this.system.caracteristiques[key]
 | 
				
			||||||
      rollData.caracKey = key
 | 
					      rollData.caracKey = key
 | 
				
			||||||
      rollData.arme = duplicate(arme)
 | 
					      rollData.arme = foundry.utils.duplicate(arme)
 | 
				
			||||||
      rollData.armes = this.getOtherMeleeWeapons(arme)
 | 
					      rollData.armes = this.getOtherMeleeWeapons(arme)
 | 
				
			||||||
      rollData.mode = "attaquecharge"
 | 
					      rollData.mode = "attaquecharge"
 | 
				
			||||||
      let rollDialog = await HeritiersRollDialog.create(this, rollData)
 | 
					      let rollDialog = await HeritiersRollDialog.create(this, rollData)
 | 
				
			||||||
@@ -699,7 +841,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
      let rollData = this.getCommonRollData(undefined, competenceName)
 | 
					      let rollData = this.getCommonRollData(undefined, competenceName)
 | 
				
			||||||
      rollData.carac = this.system.caracteristiques["agi"]
 | 
					      rollData.carac = this.system.caracteristiques["agi"]
 | 
				
			||||||
      rollData.caracKey = "agi"
 | 
					      rollData.caracKey = "agi"
 | 
				
			||||||
      rollData.arme = duplicate(arme)
 | 
					      rollData.arme = foundry.utils.duplicate(arme)
 | 
				
			||||||
      rollData.mode = "assommer"
 | 
					      rollData.mode = "assommer"
 | 
				
			||||||
      if (rollData.defenderTokenId) {
 | 
					      if (rollData.defenderTokenId) {
 | 
				
			||||||
        rollData.cacheDifficulte = true
 | 
					        rollData.cacheDifficulte = true
 | 
				
			||||||
@@ -727,7 +869,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
          callback: () => {
 | 
					          callback: () => {
 | 
				
			||||||
            rollData.pouvoirPointsUsage = 1;
 | 
					            rollData.pouvoirPointsUsage = 1;
 | 
				
			||||||
            HeritiersUtility.rollHeritiers(rollData);
 | 
					            HeritiersUtility.rollHeritiers(rollData);
 | 
				
			||||||
            }
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        two: {
 | 
					        two: {
 | 
				
			||||||
          icon: '<i class="fas fa-check"></i>',
 | 
					          icon: '<i class="fas fa-check"></i>',
 | 
				
			||||||
@@ -735,7 +877,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
          callback: () => {
 | 
					          callback: () => {
 | 
				
			||||||
            rollData.pouvoirPointsUsage = 2;
 | 
					            rollData.pouvoirPointsUsage = 2;
 | 
				
			||||||
            HeritiersUtility.rollHeritiers(rollData);
 | 
					            HeritiersUtility.rollHeritiers(rollData);
 | 
				
			||||||
            }
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        three: {
 | 
					        three: {
 | 
				
			||||||
          icon: '<i class="fas fa-check"></i>',
 | 
					          icon: '<i class="fas fa-check"></i>',
 | 
				
			||||||
@@ -743,7 +885,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
          callback: () => {
 | 
					          callback: () => {
 | 
				
			||||||
            rollData.pouvoirPointsUsage = 3;
 | 
					            rollData.pouvoirPointsUsage = 3;
 | 
				
			||||||
            HeritiersUtility.rollHeritiers(rollData);
 | 
					            HeritiersUtility.rollHeritiers(rollData);
 | 
				
			||||||
            }
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        four: {
 | 
					        four: {
 | 
				
			||||||
          icon: '<i class="fas fa-check"></i>',
 | 
					          icon: '<i class="fas fa-check"></i>',
 | 
				
			||||||
@@ -751,13 +893,13 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
          callback: () => {
 | 
					          callback: () => {
 | 
				
			||||||
            rollData.pouvoirPointsUsage = 4;
 | 
					            rollData.pouvoirPointsUsage = 4;
 | 
				
			||||||
            HeritiersUtility.rollHeritiers(rollData);
 | 
					            HeritiersUtility.rollHeritiers(rollData);
 | 
				
			||||||
            }
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        close: {
 | 
					        close: {
 | 
				
			||||||
          icon: '<i class="fas fa-times"></i>',
 | 
					          icon: '<i class="fas fa-times"></i>',
 | 
				
			||||||
          label: "Annuler",
 | 
					          label: "Annuler",
 | 
				
			||||||
          callback: () => {
 | 
					          callback: () => {
 | 
				
			||||||
            }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      default: "one",
 | 
					      default: "one",
 | 
				
			||||||
@@ -766,7 +908,7 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
    d.render(true);
 | 
					    d.render(true);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  async rollPouvoir(pouvoirId) {
 | 
					  async rollPouvoir(pouvoirId) {
 | 
				
			||||||
    let pouvoir = this.items.get(pouvoirId)
 | 
					    let pouvoir = this.items.get(pouvoirId)
 | 
				
			||||||
@@ -777,20 +919,50 @@ export class HeritiersActor extends Actor {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      let rollData = this.getCommonRollData(undefined, undefined)
 | 
					      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
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      rollData.pouvoirMaxUsage = this.getPouvoirUsageMax(pouvoir)
 | 
					      rollData.pouvoirMaxUsage = this.getPouvoirUsageMax(pouvoir)
 | 
				
			||||||
      rollData.pouvoir = duplicate(pouvoir)
 | 
					      rollData.pouvoir = foundry.utils.duplicate(pouvoir)
 | 
				
			||||||
      rollData.mode = "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)
 | 
					      let rollDialog = await HeritiersRollDialog.create(this, rollData)
 | 
				
			||||||
      rollDialog.render(true)
 | 
					      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) {
 | 
					  incDecPointsUsage(pouvoirId, value) {
 | 
				
			||||||
    let pouvoir = this.items.get(pouvoirId)
 | 
					    let pouvoir = this.items.get(pouvoirId)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,25 +12,26 @@ export const HERITIERS_CONFIG = {
 | 
				
			|||||||
    "san": "Sang-Froid"
 | 
					    "san": "Sang-Froid"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  competenceCategorie  : {
 | 
					  competenceCategorie: {
 | 
				
			||||||
    "utile": "Utile",
 | 
					    "utile": "Utile",
 | 
				
			||||||
    "futile": "Futile"
 | 
					    "futile": "Futile"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
  contactType: {
 | 
					  contactType: {
 | 
				
			||||||
    contact: "Contact", 
 | 
					    contact: "Contact",
 | 
				
			||||||
    allie: "Allié",
 | 
					    allie: "Allié",
 | 
				
			||||||
    ennemi: "Ennemi",
 | 
					    ennemi: "Ennemi",
 | 
				
			||||||
    interet: "Personne d'interêt"
 | 
					    interet: "Personne d'interêt"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  competenceProfil  : {
 | 
					  competenceProfil: {
 | 
				
			||||||
    "aventurier": {kind: "physical", name: "Aventurier"},
 | 
					    "aventurier": { kind: "physical", name: "Aventurier" },
 | 
				
			||||||
    "roublard": {kind: "physical",name: "Roublard"},
 | 
					    "roublard": { kind: "physical", name: "Roublard" },
 | 
				
			||||||
    "combattant": {kind: "physical",name:"Combattant"},
 | 
					    "combattant": { kind: "physical", name: "Combattant" },
 | 
				
			||||||
    "erudit": {kind: "mental",name:"Erudit"},
 | 
					    "erudit": { kind: "mental", name: "Erudit" },
 | 
				
			||||||
    "savant": {kind: "mental",name:"Savant"},
 | 
					    "savant": { kind: "mental", name: "Savant" },
 | 
				
			||||||
    "gentleman": {kind: "mental",name:"Gentleman"}
 | 
					    "gentleman": { kind: "mental", name: "Gentleman" },
 | 
				
			||||||
 | 
					    "magie": { kind: "magical", name: "Magie" },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  baseTestPouvoir: {
 | 
					  baseTestPouvoir: {
 | 
				
			||||||
    "feerie": "Féerie",
 | 
					    "feerie": "Féerie",
 | 
				
			||||||
@@ -52,7 +53,7 @@ export const HERITIERS_CONFIG = {
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  statutMasque: {
 | 
					  statutMasque: {
 | 
				
			||||||
    "masque": "Masqué",
 | 
					    "masque": "Masqué",
 | 
				
			||||||
    "demasque":"Démasqué"
 | 
					    "demasque": "Démasqué"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  niveauPouvoir: {
 | 
					  niveauPouvoir: {
 | 
				
			||||||
    "normal": "Normal",
 | 
					    "normal": "Normal",
 | 
				
			||||||
@@ -65,32 +66,32 @@ export const HERITIERS_CONFIG = {
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  seuilsDifficulte: {
 | 
					  seuilsDifficulte: {
 | 
				
			||||||
    "-1": "Aucun/Non applicable",
 | 
					    "-1": "Aucun/Non applicable",
 | 
				
			||||||
    "5": "Enfantine",
 | 
					    "5": "Enfantine (5)",
 | 
				
			||||||
    "6": "Triviale",
 | 
					    "6": "Triviale (6)",
 | 
				
			||||||
    "7": "Moins Triviale",
 | 
					    "7": "Moins Triviale (7)",
 | 
				
			||||||
    "8": "Aisée",
 | 
					    "8": "Aisée (8)",
 | 
				
			||||||
    "7": "Moins Aisée",
 | 
					    "9": "Moins Aisée (9)",
 | 
				
			||||||
    "10": "Normale",
 | 
					    "10": "Normale (10)",
 | 
				
			||||||
    "11": "Moins Normale",
 | 
					    "11": "Moins Normale (11)",
 | 
				
			||||||
    "12": "Compliquée",
 | 
					    "12": "Compliquée (12)",
 | 
				
			||||||
    "13": "Plus Compliquée",
 | 
					    "13": "Plus Compliquée (13)",
 | 
				
			||||||
    "14": "Difficile",
 | 
					    "14": "Difficile (14)",
 | 
				
			||||||
    "15": "Plus Difficile",
 | 
					    "15": "Plus Difficile (15)",
 | 
				
			||||||
    "16": "Très Difficile",
 | 
					    "16": "Très Difficile (16)",
 | 
				
			||||||
    "17": "Très Très Difficile",
 | 
					    "17": "Très Très Difficile (17)",
 | 
				
			||||||
    "18": "Critique",
 | 
					    "18": "Critique (18)",
 | 
				
			||||||
    "19": "Plus Critique",
 | 
					    "19": "Plus Critique (19)",
 | 
				
			||||||
    "20": "Insurmontable",
 | 
					    "20": "Insurmontable (20)",
 | 
				
			||||||
    "20": "Très Insurmontable",
 | 
					    "21": "Très Insurmontable (21)",
 | 
				
			||||||
    "22": "Surhumaine",
 | 
					    "22": "Surhumaine (22)",
 | 
				
			||||||
    "23": "Très Surhumaine",
 | 
					    "23": "Très Surhumaine (23)",
 | 
				
			||||||
    "24": "Epique",
 | 
					    "24": "Epique (24)",
 | 
				
			||||||
    "25": "Plus Epique",
 | 
					    "25": "Plus Epique (25)",
 | 
				
			||||||
    "26": "Légendaire",
 | 
					    "26": "Légendaire (26)",
 | 
				
			||||||
    "26": "Très Légendaire",
 | 
					    "27": "Très Légendaire (27)",
 | 
				
			||||||
    "28": "Mythique",
 | 
					    "28": "Mythique (28)",
 | 
				
			||||||
    "29": "Plus Mythique",
 | 
					    "29": "Plus Mythique (29)",
 | 
				
			||||||
    "30": "Divine"
 | 
					    "30": "Divine (30)"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  attaqueCible: {
 | 
					  attaqueCible: {
 | 
				
			||||||
@@ -99,8 +100,8 @@ export const HERITIERS_CONFIG = {
 | 
				
			|||||||
    "main": "Main",
 | 
					    "main": "Main",
 | 
				
			||||||
    "tete": "Tête/Coeur"
 | 
					    "tete": "Tête/Coeur"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
  categorieArme : {
 | 
					  categorieArme: {
 | 
				
			||||||
    "trait": "Arme de trait",
 | 
					    "trait": "Arme de trait",
 | 
				
			||||||
    "poing": "Arme de poing",
 | 
					    "poing": "Arme de poing",
 | 
				
			||||||
    "epaule": "Arme d'épaule",
 | 
					    "epaule": "Arme d'épaule",
 | 
				
			||||||
@@ -108,7 +109,7 @@ export const HERITIERS_CONFIG = {
 | 
				
			|||||||
    "blanche": "Arme blanche",
 | 
					    "blanche": "Arme blanche",
 | 
				
			||||||
    "improvise": "Arme improvisée",
 | 
					    "improvise": "Arme improvisée",
 | 
				
			||||||
    "explosif": "Explosif"
 | 
					    "explosif": "Explosif"
 | 
				
			||||||
  }, 
 | 
					  },
 | 
				
			||||||
  typeArme: {
 | 
					  typeArme: {
 | 
				
			||||||
    "naturelle": "Arme naturelle",
 | 
					    "naturelle": "Arme naturelle",
 | 
				
			||||||
    "trait": "Trait",
 | 
					    "trait": "Trait",
 | 
				
			||||||
@@ -130,13 +131,13 @@ export const HERITIERS_CONFIG = {
 | 
				
			|||||||
    "controlee": "Contrôlée (C)",
 | 
					    "controlee": "Contrôlée (C)",
 | 
				
			||||||
    "prohibee": "Prohibée (P)"
 | 
					    "prohibee": "Prohibée (P)"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  armeDissimulation :{
 | 
					  armeDissimulation: {
 | 
				
			||||||
    "tresfacile": "Très facile (TF)",
 | 
					    "tresfacile": "Très facile (TF)",
 | 
				
			||||||
    "facile": "Facile (F)",
 | 
					    "facile": "Facile (F)",
 | 
				
			||||||
    "difficile": "Difficile (D)",
 | 
					    "difficile": "Difficile (D)",
 | 
				
			||||||
    "impossible": "Impossible (I)"
 | 
					    "impossible": "Impossible (I)"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  typeProtection : {
 | 
					  typeProtection: {
 | 
				
			||||||
    "balle": "Protège ds balles",
 | 
					    "balle": "Protège ds balles",
 | 
				
			||||||
    "melee": "Protège en mélée",
 | 
					    "melee": "Protège en mélée",
 | 
				
			||||||
    "tout": "Tout type de dégats"
 | 
					    "tout": "Tout type de dégats"
 | 
				
			||||||
@@ -145,7 +146,128 @@ export const HERITIERS_CONFIG = {
 | 
				
			|||||||
    "traditionnelle": "Traditionnelle",
 | 
					    "traditionnelle": "Traditionnelle",
 | 
				
			||||||
    "moderne": "Moderne",
 | 
					    "moderne": "Moderne",
 | 
				
			||||||
    "orientale": "Orientale"
 | 
					    "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
 | 
					 * Extend the basic ItemSheet with some very simple modifications
 | 
				
			||||||
 * @extends {ItemSheet}
 | 
					 * @extends {ItemSheet}
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export class HeritiersItemSheet extends ItemSheet {
 | 
					export class HeritiersItemSheet extends foundry.appv1.sheets.ItemSheet {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /** @override */
 | 
					  /** @override */
 | 
				
			||||||
  static get defaultOptions() {
 | 
					  static get defaultOptions() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return mergeObject(super.defaultOptions, {
 | 
					    return foundry.utils.mergeObject(super.defaultOptions, {
 | 
				
			||||||
      classes: ["fvtt-les-heritiers", "sheet", "item"],
 | 
					      classes: ["fvtt-les-heritiers", "sheet", "item"],
 | 
				
			||||||
      template: "systems/fvtt-les-heritiers/templates/item-sheet.html",
 | 
					      template: "systems/fvtt-les-heritiers/templates/item-sheet.html",
 | 
				
			||||||
      dragDrop: [{ dragSelector: null, dropSelector: null }],
 | 
					      dragDrop: [{ dragSelector: null, dropSelector: null }],
 | 
				
			||||||
@@ -48,7 +48,7 @@ export class HeritiersItemSheet extends ItemSheet {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  async getData() {
 | 
					  async getData() {
 | 
				
			||||||
    const objectData = duplicate(this.object)
 | 
					    const objectData = foundry.utils.duplicate(this.object)
 | 
				
			||||||
    let formData = {
 | 
					    let formData = {
 | 
				
			||||||
      title: this.title,
 | 
					      title: this.title,
 | 
				
			||||||
      id: this.id,
 | 
					      id: this.id,
 | 
				
			||||||
@@ -61,9 +61,9 @@ export class HeritiersItemSheet extends ItemSheet {
 | 
				
			|||||||
      limited: this.object.limited,
 | 
					      limited: this.object.limited,
 | 
				
			||||||
      options: this.options,
 | 
					      options: this.options,
 | 
				
			||||||
      owner: this.document.isOwner,
 | 
					      owner: this.document.isOwner,
 | 
				
			||||||
      config: game.system.lesheritiers.config,      
 | 
					      config: game.system.lesheritiers.config,
 | 
				
			||||||
      isArmeMelee: HeritiersUtility.isArmeMelee(this.object),
 | 
					      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'),
 | 
					      mr: (this.object.type == 'specialisation'),
 | 
				
			||||||
      isGM: game.user.isGM,
 | 
					      isGM: game.user.isGM,
 | 
				
			||||||
      usageMax: -1
 | 
					      usageMax: -1
 | 
				
			||||||
@@ -76,6 +76,10 @@ export class HeritiersItemSheet extends ItemSheet {
 | 
				
			|||||||
        this.object.system.pointsusagecourant = formData.usageMax
 | 
					        this.object.system.pointsusagecourant = formData.usageMax
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    if (this.object.type == 'sort' ) {
 | 
				
			||||||
 | 
					      formData.competencesMagie = HeritiersUtility.getCompetencesMagie()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //this.options.editable = !(this.object.origin == "embeddedItem");
 | 
					    //this.options.editable = !(this.object.origin == "embeddedItem");
 | 
				
			||||||
    console.log("ITEM DATA", formData, this);
 | 
					    console.log("ITEM DATA", formData, this);
 | 
				
			||||||
@@ -96,7 +100,7 @@ export class HeritiersItemSheet extends ItemSheet {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  postItem() {
 | 
					  postItem() {
 | 
				
			||||||
    let chatData = duplicate(HeritiersUtility.data(this.item));
 | 
					    let chatData = foundry.utils.duplicate(HeritiersUtility.data(this.item));
 | 
				
			||||||
    if (this.actor) {
 | 
					    if (this.actor) {
 | 
				
			||||||
      chatData.actor = { id: this.actor.id };
 | 
					      chatData.actor = { id: this.actor.id };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -138,55 +142,55 @@ export class HeritiersItemSheet extends ItemSheet {
 | 
				
			|||||||
    })
 | 
					    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    html.find('#add-specialite').click(ev => {
 | 
					    html.find('#add-specialite').click(ev => {
 | 
				
			||||||
      let spec = duplicate(this.object.system.specialites)
 | 
					      let spec = foundry.utils.duplicate(this.object.system.specialites)
 | 
				
			||||||
      spec.push( { name: "Nouvelle Spécialité", id: randomID(16), used: false }) 
 | 
					      spec.push( { name: "Nouvelle Spécialité", id: foundry.utils.randomID(16), used: false })
 | 
				
			||||||
      this.object.update( { 'system.specialites': spec })
 | 
					      this.object.update( { 'system.specialites': spec })
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('.delete-specialite').click(ev => {
 | 
					    html.find('.delete-specialite').click(ev => {
 | 
				
			||||||
      const li = $(ev.currentTarget).parents(".specialite-item")
 | 
					      const li = $(ev.currentTarget).parents(".specialite-item")
 | 
				
			||||||
      let index = li.data("specialite-index")
 | 
					      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)
 | 
					      spec.splice(index,1)
 | 
				
			||||||
      this.object.update( { 'system.specialites': spec })
 | 
					      this.object.update( { 'system.specialites': spec })
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('.edit-specialite').change(ev => {
 | 
					    html.find('.edit-specialite').change(ev => {
 | 
				
			||||||
      const li = $(ev.currentTarget).parents(".specialite-item")
 | 
					      const li = $(ev.currentTarget).parents(".specialite-item")
 | 
				
			||||||
      let index = li.data("specialite-index")
 | 
					      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].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 })
 | 
					      this.object.update( { 'system.specialites': spec })
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('.edit-specialite-description').change(ev => {
 | 
					    html.find('.edit-specialite-description').change(ev => {
 | 
				
			||||||
      const li = $(ev.currentTarget).parents(".specialite-item")
 | 
					      const li = $(ev.currentTarget).parents(".specialite-item")
 | 
				
			||||||
      let index = li.data("specialite-index")
 | 
					      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].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 })
 | 
					      this.object.update( { 'system.specialites': spec })
 | 
				
			||||||
    })    
 | 
					    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    html.find('#add-automation').click(ev => {
 | 
					    html.find('#add-automation').click(ev => {
 | 
				
			||||||
      let autom = duplicate(this.object.system.automations)
 | 
					      let autom = foundry.utils.duplicate(this.object.system.automations)
 | 
				
			||||||
      autom.push( { eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: randomID(16) }) 
 | 
					      autom.push( { eventtype: "on-drop", name: "Automatisation 1", competence: "", minLevel: 0, id: foundry.utils.randomID(16) })
 | 
				
			||||||
      this.object.update( { 'system.automations': autom })
 | 
					      this.object.update( { 'system.automations': autom })
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('.delete-automation').click(ev => {
 | 
					    html.find('.delete-automation').click(ev => {
 | 
				
			||||||
      const li = $(ev.currentTarget).parents(".automation-item")
 | 
					      const li = $(ev.currentTarget).parents(".automation-item")
 | 
				
			||||||
      let index = li.data("automation-index")
 | 
					      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)
 | 
					      autom.splice(index,1)
 | 
				
			||||||
      this.object.update( { 'system.automations': autom })
 | 
					      this.object.update( { 'system.automations': autom })
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('.automation-edit-field').change(ev => {
 | 
					    html.find('.automation-edit-field').change(ev => {
 | 
				
			||||||
      let index = $(ev.currentTarget).data("automation-index")
 | 
					      let index = $(ev.currentTarget).data("automation-index")
 | 
				
			||||||
      let field = $(ev.currentTarget).data("automation-field")
 | 
					      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][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 })
 | 
					      this.object.update( { 'system.automations': auto })
 | 
				
			||||||
    })    
 | 
					    })
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    // Update Inventory Item
 | 
					    // Update Inventory Item
 | 
				
			||||||
    html.find('.item-delete').click(ev => {
 | 
					    html.find('.item-delete').click(ev => {
 | 
				
			||||||
      const li = $(ev.currentTarget).parents(".item");
 | 
					      const li = $(ev.currentTarget).parents(".item");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,7 @@ export const defaultItemImg = {
 | 
				
			|||||||
    fee: "systems/fvtt-les-heritiers/assets/icons/faery_type.webp",
 | 
					    fee: "systems/fvtt-les-heritiers/assets/icons/faery_type.webp",
 | 
				
			||||||
    profil: "systems/fvtt-les-heritiers/assets/icons/profil.webp",
 | 
					    profil: "systems/fvtt-les-heritiers/assets/icons/profil.webp",
 | 
				
			||||||
    equipement: "systems/fvtt-les-heritiers/assets/icons/equipement.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 { HeritiersItemSheet } from "./heritiers-item-sheet.js";
 | 
				
			||||||
import { HeritiersActorSheet } from "./heritiers-actor-sheet.js";
 | 
					import { HeritiersActorSheet } from "./heritiers-actor-sheet.js";
 | 
				
			||||||
import { HeritiersActorPNJSheet } from "./heritiers-actor-pnj-sheet.js";
 | 
					import { HeritiersActorPNJSheet } from "./heritiers-actor-pnj-sheet.js";
 | 
				
			||||||
import { HeritiersCreatureSheet } from "./heritiers-creature-sheet.js";
 | 
					 | 
				
			||||||
import { HeritiersUtility } from "./heritiers-utility.js";
 | 
					import { HeritiersUtility } from "./heritiers-utility.js";
 | 
				
			||||||
import { HeritiersCombat } from "./heritiers-combat.js";
 | 
					import { HeritiersCombat } from "./heritiers-combat.js";
 | 
				
			||||||
import { HeritiersItem } from "./heritiers-item.js";
 | 
					import { HeritiersItem } from "./heritiers-item.js";
 | 
				
			||||||
@@ -31,7 +30,7 @@ Hooks.once("init", async function () {
 | 
				
			|||||||
  HeritiersUtility.preloadHandlebarsTemplates()
 | 
					  HeritiersUtility.preloadHandlebarsTemplates()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  // Set an initiative formula for the system 
 | 
					  // Set an initiative formula for the system
 | 
				
			||||||
  CONFIG.Combat.initiative = {
 | 
					  CONFIG.Combat.initiative = {
 | 
				
			||||||
    formula: "1d10",
 | 
					    formula: "1d10",
 | 
				
			||||||
    decimals: 1
 | 
					    decimals: 1
 | 
				
			||||||
@@ -47,6 +46,8 @@ Hooks.once("init", async function () {
 | 
				
			|||||||
  CONFIG.Combat.documentClass = HeritiersCombat
 | 
					  CONFIG.Combat.documentClass = HeritiersCombat
 | 
				
			||||||
  CONFIG.Actor.documentClass = HeritiersActor
 | 
					  CONFIG.Actor.documentClass = HeritiersActor
 | 
				
			||||||
  CONFIG.Item.documentClass = HeritiersItem
 | 
					  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 = {
 | 
					  game.system.lesheritiers = {
 | 
				
			||||||
    HeritiersUtility,
 | 
					    HeritiersUtility,
 | 
				
			||||||
    config: HERITIERS_CONFIG
 | 
					    config: HERITIERS_CONFIG
 | 
				
			||||||
@@ -54,12 +55,12 @@ Hooks.once("init", async function () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  // Register sheet application classes
 | 
					  // Register sheet application classes
 | 
				
			||||||
  Actors.unregisterSheet("core", ActorSheet);
 | 
					  foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
 | 
				
			||||||
  Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true })
 | 
					  foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorSheet, { types: ["personnage"], makeDefault: true })
 | 
				
			||||||
  Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true })
 | 
					  foundry.documents.collections.Actors.registerSheet("fvtt-les-heritiers", HeritiersActorPNJSheet, { types: ["pnj"], makeDefault: true })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Items.unregisterSheet("core", ItemSheet);
 | 
					  foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet);
 | 
				
			||||||
  Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true })
 | 
					  foundry.documents.collections.Items.registerSheet("fvtt-les-heritiers", HeritiersItemSheet, { makeDefault: true })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  HeritiersUtility.init()
 | 
					  HeritiersUtility.init()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -105,13 +106,13 @@ Hooks.once("ready", function () {
 | 
				
			|||||||
      user: game.user._id
 | 
					      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)
 | 
					    console.log("ClassCounter loaded", moduleCounter)
 | 
				
			||||||
    moduleCounter.ClassCounter.registerUsageCount()
 | 
					    moduleCounter.ClassCounter.registerUsageCount()
 | 
				
			||||||
  }).catch(err=>
 | 
					  }).catch(err =>
 | 
				
			||||||
    console.log("No stats available, giving up.")
 | 
					    console.log("No stats available, giving up.")
 | 
				
			||||||
  )    
 | 
					  )
 | 
				
			||||||
  welcomeMessage();
 | 
					  welcomeMessage();
 | 
				
			||||||
  importDefaultScene();
 | 
					  importDefaultScene();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -130,4 +131,3 @@ Hooks.on("chatMessage", (html, content, msg) => {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  return true;
 | 
					  return true;
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,7 @@ export class HeritiersRollDialog extends Dialog {
 | 
				
			|||||||
  static async create(actor, rollData) {
 | 
					  static async create(actor, rollData) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let options = { classes: ["HeritiersDialog"], width: 420, height: 'fit-content', 'z-index': 99999 };
 | 
					    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);
 | 
					    return new HeritiersRollDialog(actor, rollData, html, options);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -109,7 +109,6 @@ export class HeritiersRollDialog extends Dialog {
 | 
				
			|||||||
  activateListeners(html) {
 | 
					  activateListeners(html) {
 | 
				
			||||||
    super.activateListeners(html);
 | 
					    super.activateListeners(html);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var dialog = this;
 | 
					 | 
				
			||||||
    function onLoad() {
 | 
					    function onLoad() {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    $(function () { onLoad(); });
 | 
					    $(function () { onLoad(); });
 | 
				
			||||||
@@ -118,6 +117,7 @@ export class HeritiersRollDialog extends Dialog {
 | 
				
			|||||||
      this.rollData.sdValue = Number(event.currentTarget.value)
 | 
					      this.rollData.sdValue = Number(event.currentTarget.value)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('#caracKey').change(async (event) => {
 | 
					    html.find('#caracKey').change(async (event) => {
 | 
				
			||||||
 | 
					      //console.log("caracKey", event.currentTarget.value)
 | 
				
			||||||
      this.rollData.caracKey = String(event.currentTarget.value)
 | 
					      this.rollData.caracKey = String(event.currentTarget.value)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    html.find('#bonus-malus-context').change((event) => {
 | 
					    html.find('#bonus-malus-context').change((event) => {
 | 
				
			||||||
@@ -141,6 +141,6 @@ export class HeritiersRollDialog extends Dialog {
 | 
				
			|||||||
    html.find('#attaque-cible').change((event) => {
 | 
					    html.find('#attaque-cible').change((event) => {
 | 
				
			||||||
      this.rollData.attaqueCible = String(event.currentTarget.value)
 | 
					      this.rollData.attaqueCible = String(event.currentTarget.value)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -26,7 +26,7 @@ const __facesAdjacentes = {
 | 
				
			|||||||
    10: [8, 4, 3, 7]
 | 
					    10: [8, 4, 3, 7]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "d12": {
 | 
					  "d12": {
 | 
				
			||||||
    1:[2, 3, 4, 5, 6],
 | 
					    1: [2, 3, 4, 5, 6],
 | 
				
			||||||
    2: [1, 6, 8, 12, 3],
 | 
					    2: [1, 6, 8, 12, 3],
 | 
				
			||||||
    3: [1, 4, 11, 12, 2],
 | 
					    3: [1, 4, 11, 12, 2],
 | 
				
			||||||
    4: [1, 5, 10, 11, 3],
 | 
					    4: [1, 5, 10, 11, 3],
 | 
				
			||||||
@@ -48,7 +48,7 @@ export class HeritiersUtility {
 | 
				
			|||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  static async init() {
 | 
					  static async init() {
 | 
				
			||||||
    Hooks.on('renderChatLog', (log, html, data) => HeritiersUtility.chatListeners(html))
 | 
					    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.rollDataStore = {}
 | 
				
			||||||
    this.defenderStore = {}
 | 
					    this.defenderStore = {}
 | 
				
			||||||
@@ -104,6 +104,8 @@ export class HeritiersUtility {
 | 
				
			|||||||
    const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
 | 
					    const skills = await HeritiersUtility.loadCompendium("fvtt-les-heritiers.competences")
 | 
				
			||||||
    this.skills = skills.map(i => i.toObject())
 | 
					    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", {
 | 
					    game.settings.register("fvtt-les-heritiers", "heritiers-heritage", {
 | 
				
			||||||
      name: "Points d'héritage",
 | 
					      name: "Points d'héritage",
 | 
				
			||||||
      hint: "Points d'héritage du groupe",
 | 
					      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) {
 | 
					  static async loadCompendiumData(compendium) {
 | 
				
			||||||
    const pack = game.packs.get(compendium);
 | 
					    const pack = game.packs.get(compendium);
 | 
				
			||||||
@@ -133,29 +161,29 @@ export class HeritiersUtility {
 | 
				
			|||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  static async chatListeners(html) {
 | 
					  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 predIdx = $(event.currentTarget).data("predilection-index")
 | 
				
			||||||
      let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
 | 
					      let messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
 | 
				
			||||||
      let message = game.messages.get(messageId)
 | 
					      let message = game.messages.get(messageId)
 | 
				
			||||||
      let rollData = message.getFlag("world", "heritiers-roll")
 | 
					      let rollData = message.getFlag("world", "heritiers-roll")
 | 
				
			||||||
      let actor = this.getActorFromRollData(rollData)
 | 
					      let actor = this.getActorFromRollData(rollData)
 | 
				
			||||||
      await actor.setPredilectionUsed(rollData.competence._id, predIdx)
 | 
					      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)
 | 
					      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 messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
 | 
				
			||||||
      let message = game.messages.get(messageId)
 | 
					      let message = game.messages.get(messageId)
 | 
				
			||||||
      let rollData = message.getFlag("world", "heritiers-roll")
 | 
					      let rollData = message.getFlag("world", "heritiers-roll")
 | 
				
			||||||
      let actor = this.getActorFromRollData(rollData)
 | 
					      let actor = this.getActorFromRollData(rollData)
 | 
				
			||||||
      if ( await actor.incDecTricherie(-2) ) {
 | 
					      if (await actor.incDecTricherie(-2)) {
 | 
				
			||||||
        rollData.forcedValue = Number($(event.currentTarget).data("dice-value"))
 | 
					        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 messageId = HeritiersUtility.findChatMessageId(event.currentTarget)
 | 
				
			||||||
      let message = game.messages.get(messageId)
 | 
					      let message = game.messages.get(messageId)
 | 
				
			||||||
      let rollData = message.getFlag("world", "heritiers-roll")
 | 
					      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-header.html',
 | 
				
			||||||
      'systems/fvtt-les-heritiers/templates/partial-item-description.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-item-nav.html',
 | 
				
			||||||
      'systems/fvtt-les-heritiers/templates/partial-utile-skills.html',
 | 
					      'systems/fvtt-les-heritiers/templates/partial-utile-skills.html'
 | 
				
			||||||
      'systems/fvtt-les-heritiers/templates/partial-list-niveau.html'
 | 
					 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
    return loadTemplates(templatePaths);
 | 
					    return foundry.applications.handlebars.loadTemplates(templatePaths);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
@@ -252,14 +279,14 @@ export class HeritiersUtility {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    let id = rollData.rollId;
 | 
					    let id = rollData.rollId;
 | 
				
			||||||
    let oldRollData = this.rollDataStore[id] || {};
 | 
					    let oldRollData = this.rollDataStore[id] || {};
 | 
				
			||||||
    let newRollData = mergeObject(oldRollData, rollData);
 | 
					    let newRollData = foundry.utils.mergeObject(oldRollData, rollData);
 | 
				
			||||||
    this.rollDataStore[id] = newRollData;
 | 
					    this.rollDataStore[id] = newRollData;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  static saveRollData(rollData) {
 | 
					  static saveRollData(rollData) {
 | 
				
			||||||
    game.socket.emit("system.fvtt-les-heritiers", {
 | 
					    game.socket.emit("system.fvtt-les-heritiers", {
 | 
				
			||||||
      name: "msg_update_roll", data: rollData
 | 
					      name: "msg_update_roll", data: rollData
 | 
				
			||||||
    }); // Notify all other clients of the roll    
 | 
					    }); // Notify all other clients of the roll
 | 
				
			||||||
    this.updateRollData(rollData);
 | 
					    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
 | 
					          rollData.finalResult -= 5 + rollValue // Remove also the dice result has it has been added already
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      if ( !rollData.forcedValue) {
 | 
					      if (!rollData.forcedValue) {
 | 
				
			||||||
        rollData.adjacentFaces = duplicate(__facesAdjacentes[rollData.mainDice][rollData.diceValue])
 | 
					        rollData.adjacentFaces = foundry.utils.duplicate(__facesAdjacentes[rollData.mainDice][rollData.diceValue])
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -451,7 +478,7 @@ export class HeritiersUtility {
 | 
				
			|||||||
      this.computeArmeDegats(rollData, actor)
 | 
					      this.computeArmeDegats(rollData, actor)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    this.createChatWithRollMode(rollData.alias, {
 | 
					    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")
 | 
					    }, rollData, "selfroll")
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
@@ -463,7 +490,7 @@ export class HeritiersUtility {
 | 
				
			|||||||
    this.computeMarge(rollData, valeurDefense)
 | 
					    this.computeMarge(rollData, valeurDefense)
 | 
				
			||||||
    rollData.dureeAssommer = (rollData.marge) ? rollData.marge * 2 : 1
 | 
					    rollData.dureeAssommer = (rollData.marge) ? rollData.marge * 2 : 1
 | 
				
			||||||
    this.createChatWithRollMode(rollData.alias, {
 | 
					    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")
 | 
					    }, rollData, "selfroll")
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
@@ -471,13 +498,14 @@ export class HeritiersUtility {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    let actor = this.getActorFromRollData(rollData)
 | 
					    let actor = this.getActorFromRollData(rollData)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ( rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) {
 | 
					    if (rollData.mode == "pouvoir" && actor.getPouvoirUsage(rollData.pouvoir._id) < rollData.pouvoirPointsUsage) {
 | 
				
			||||||
      ui.notifications.warn("Pas assez de points d'usage pour ce pouvoir.")
 | 
					      ui.notifications.warn("Pas assez de points d'usage pour ce pouvoir.")
 | 
				
			||||||
      return
 | 
					      return
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    //rollData.actionImg = "systems/fvtt-les-heritiers/assets/icons/" + actor.system.attributs[rollData.attrKey].labelnorm + ".webp"
 | 
					    //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) {
 | 
					    if (rollData.forcedValue) {
 | 
				
			||||||
      rollData.diceFormula = rollData.forcedValue
 | 
					      rollData.diceFormula = rollData.forcedValue
 | 
				
			||||||
@@ -486,7 +514,7 @@ export class HeritiersUtility {
 | 
				
			|||||||
        rollData.diceFormula = "{1d8, 1d10, 1d12}"
 | 
					        rollData.diceFormula = "{1d8, 1d10, 1d12}"
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
        rollData.diceFormula = "1" + rollData.mainDice + "kh1"
 | 
					        rollData.diceFormula = "1" + rollData.mainDice + "kh1"
 | 
				
			||||||
      }  
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let rangValue = 0
 | 
					    let rangValue = 0
 | 
				
			||||||
@@ -535,10 +563,10 @@ export class HeritiersUtility {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ( !rollData.noRoll) { 
 | 
					    if (!rollData.noRoll) {
 | 
				
			||||||
      let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
 | 
					      let myRoll = await new Roll(rollData.diceFormula).roll()
 | 
				
			||||||
      await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
 | 
					      await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
 | 
				
			||||||
      rollData.roll = duplicate(myRoll)
 | 
					      rollData.roll = foundry.utils.duplicate(myRoll)
 | 
				
			||||||
      console.log(">>>> ", myRoll)
 | 
					      console.log(">>>> ", myRoll)
 | 
				
			||||||
      this.computeResult(actor, rollData)
 | 
					      this.computeResult(actor, rollData)
 | 
				
			||||||
      this.computeMarge(rollData, rollData.sdValue) // Calcul de la marge si seuil présent
 | 
					      this.computeMarge(rollData, rollData.sdValue) // Calcul de la marge si seuil présent
 | 
				
			||||||
@@ -552,9 +580,20 @@ export class HeritiersUtility {
 | 
				
			|||||||
    if (rollData.mode == "pouvoir" || rollData.mode == "pouvoirpassif") {
 | 
					    if (rollData.mode == "pouvoir" || rollData.mode == "pouvoirpassif") {
 | 
				
			||||||
      actor.incDecPointsUsage(rollData.pouvoir._id, -rollData.pouvoirPointsUsage)
 | 
					      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, {
 | 
					    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)
 | 
					    }, rollData)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Gestion attaque standard
 | 
					    // Gestion attaque standard
 | 
				
			||||||
@@ -583,16 +622,16 @@ export class HeritiersUtility {
 | 
				
			|||||||
  static async bonusRollHeritiers(rollData) {
 | 
					  static async bonusRollHeritiers(rollData) {
 | 
				
			||||||
    rollData.bonusFormula = rollData.addedBonus
 | 
					    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"));
 | 
					    await this.showDiceSoNice(bonusRoll, game.settings.get("core", "rollMode"));
 | 
				
			||||||
    rollData.bonusRoll = duplicate(bonusRoll)
 | 
					    rollData.bonusRoll = foundry.utils.duplicate(bonusRoll)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    rollData.finalResult += rollData.bonusRoll.total
 | 
					    rollData.finalResult += rollData.bonusRoll.total
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.computeResult(rollData)
 | 
					    this.computeResult(rollData)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.createChatWithRollMode(rollData.alias, {
 | 
					    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)
 | 
					    }, rollData)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -623,7 +662,7 @@ export class HeritiersUtility {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  static blindMessageToGM(chatOptions) {
 | 
					  static blindMessageToGM(chatOptions) {
 | 
				
			||||||
    let chatGM = duplicate(chatOptions);
 | 
					    let chatGM = foundry.utils.duplicate(chatOptions);
 | 
				
			||||||
    chatGM.whisper = this.getUsers(user => user.isGM);
 | 
					    chatGM.whisper = this.getUsers(user => user.isGM);
 | 
				
			||||||
    chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
 | 
					    chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
 | 
				
			||||||
    console.log("blindMessageToGM", chatGM);
 | 
					    console.log("blindMessageToGM", chatGM);
 | 
				
			||||||
@@ -687,7 +726,7 @@ export class HeritiersUtility {
 | 
				
			|||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  static getBasicRollData() {
 | 
					  static getBasicRollData() {
 | 
				
			||||||
    let rollData = {
 | 
					    let rollData = {
 | 
				
			||||||
      rollId: randomID(16),
 | 
					      rollId: foundry.utils.randomID(16),
 | 
				
			||||||
      rollMode: game.settings.get("core", "rollMode"),
 | 
					      rollMode: game.settings.get("core", "rollMode"),
 | 
				
			||||||
      sdList: game.system.lesheritiers.config.seuilsDifficulte,
 | 
					      sdList: game.system.lesheritiers.config.seuilsDifficulte,
 | 
				
			||||||
      sdValue: -1,
 | 
					      sdValue: -1,
 | 
				
			||||||
@@ -765,13 +804,13 @@ export class HeritiersUtility {
 | 
				
			|||||||
  static chatRollMenu(html, options) {
 | 
					  static chatRollMenu(html, options) {
 | 
				
			||||||
    let canApply = li => canvas.tokens.controlled.length && li.find(".heritiers-roll").length
 | 
					    let canApply = li => canvas.tokens.controlled.length && li.find(".heritiers-roll").length
 | 
				
			||||||
    let canApplyBA = function (li) {
 | 
					    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 rollData = message.getFlag("world", "heritiers-roll")
 | 
				
			||||||
      let actor = this.getActorFromRollData(rollData)
 | 
					      let actor = this.getActorFromRollData(rollData)
 | 
				
			||||||
      return (!rollData.isReroll && actor.getBonneAventure() > 0)
 | 
					      return (!rollData.isReroll && actor.getBonneAventure() > 0)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    let canApplyPE = function (li) {
 | 
					    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 rollData = message.getFlag("world", "heritiers-roll")
 | 
				
			||||||
      let actor = this.getActorFromRollData(rollData)
 | 
					      let actor = this.getActorFromRollData(rollData)
 | 
				
			||||||
      return (!rollData.isReroll && actor.getEclat() > 0)
 | 
					      return (!rollData.isReroll && actor.getEclat() > 0)
 | 
				
			||||||
@@ -806,11 +845,11 @@ export class HeritiersUtility {
 | 
				
			|||||||
  /* -------------------------------------------- */
 | 
					  /* -------------------------------------------- */
 | 
				
			||||||
  static async confirmDelete(actorSheet, li) {
 | 
					  static async confirmDelete(actorSheet, li) {
 | 
				
			||||||
    let itemId = li.data("item-id");
 | 
					    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 = {
 | 
					    let buttons = {
 | 
				
			||||||
      delete: {
 | 
					      delete: {
 | 
				
			||||||
        icon: '<i class="fas fa-check"></i>',
 | 
					        icon: '<i class="fas fa-check"></i>',
 | 
				
			||||||
        label: "Yes, remove it",
 | 
					        label: "Oui !",
 | 
				
			||||||
        callback: () => {
 | 
					        callback: () => {
 | 
				
			||||||
          actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
 | 
					          actorSheet.actor.deleteEmbeddedDocuments("Item", [itemId]);
 | 
				
			||||||
          li.slideUp(200, () => actorSheet.render(false));
 | 
					          li.slideUp(200, () => actorSheet.render(false));
 | 
				
			||||||
@@ -818,12 +857,12 @@ export class HeritiersUtility {
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
      cancel: {
 | 
					      cancel: {
 | 
				
			||||||
        icon: '<i class="fas fa-times"></i>',
 | 
					        icon: '<i class="fas fa-times"></i>',
 | 
				
			||||||
        label: "Cancel"
 | 
					        label: "Non !"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    msgTxt += "</p>";
 | 
					    msgTxt += "</p>";
 | 
				
			||||||
    let d = new Dialog({
 | 
					    let d = new Dialog({
 | 
				
			||||||
      title: "Confirm removal",
 | 
					      title: "Confirmer la suppression",
 | 
				
			||||||
      content: msgTxt,
 | 
					      content: msgTxt,
 | 
				
			||||||
      buttons: buttons,
 | 
					      buttons: buttons,
 | 
				
			||||||
      default: "cancel"
 | 
					      default: "cancel"
 | 
				
			||||||
@@ -831,21 +870,56 @@ export class HeritiersUtility {
 | 
				
			|||||||
    d.render(true);
 | 
					    d.render(true);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /************************************************************************************/
 | 
					  static loadSort() {
 | 
				
			||||||
  static async __create_talents_table() {
 | 
					    // Create afolder in the item directory if it doesn't exist
 | 
				
			||||||
    let compName = "fvtt-les-heritiers.talents-cellule"
 | 
					    if (!game.folders.getName("Magie du Clan")) {
 | 
				
			||||||
    const compData = await HeritiersUtility.loadCompendium(compName)
 | 
					      Folder.create({
 | 
				
			||||||
    let talents = compData.map(i => i.toObject())
 | 
					        name: "Magie du Clan",
 | 
				
			||||||
 | 
					        type: "Item",
 | 
				
			||||||
    let htmlTab = "<table border='1'><tbody>";
 | 
					        color: "#3b1361"
 | 
				
			||||||
    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";
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    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-000090
 | 
					MANIFEST-000220
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
2024/04/11-06:57:01.656084 7faaec2006c0 Recovering log #88
 | 
					2025/08/13-09:34:30.878225 7f12ef7fe6c0 Recovering log #218
 | 
				
			||||||
2024/04/11-06:57:01.666957 7faaec2006c0 Delete type=3 #86
 | 
					2025/08/13-09:34:30.895947 7f12ef7fe6c0 Delete type=3 #216
 | 
				
			||||||
2024/04/11-06:57:01.667075 7faaec2006c0 Delete type=0 #88
 | 
					2025/08/13-09:34:30.896018 7f12ef7fe6c0 Delete type=0 #218
 | 
				
			||||||
2024/04/11-12:35:54.521478 7faaeae006c0 Level-0 table #93: started
 | 
					2025/08/13-09:38:15.124427 7f12edffb6c0 Level-0 table #223: started
 | 
				
			||||||
2024/04/11-12:35:54.521514 7faaeae006c0 Level-0 table #93: 0 bytes OK
 | 
					2025/08/13-09:38:15.124524 7f12edffb6c0 Level-0 table #223: 0 bytes OK
 | 
				
			||||||
2024/04/11-12:35:54.527725 7faaeae006c0 Delete type=0 #91
 | 
					2025/08/13-09:38:15.131139 7f12edffb6c0 Delete type=0 #221
 | 
				
			||||||
2024/04/11-12:35:54.534670 7faaeae006c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/11-12:35:54.541869 7faaeae006c0 Manual compaction at level-1 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/04/07-18:53:23.340520 7f38a3e006c0 Recovering log #84
 | 
					2025/08/12-23:22:09.841305 7f12eeffd6c0 Recovering log #214
 | 
				
			||||||
2024/04/07-18:53:23.351008 7f38a3e006c0 Delete type=3 #82
 | 
					2025/08/12-23:22:09.894721 7f12eeffd6c0 Delete type=3 #212
 | 
				
			||||||
2024/04/07-18:53:23.351081 7f38a3e006c0 Delete type=0 #84
 | 
					2025/08/12-23:22:09.894801 7f12eeffd6c0 Delete type=0 #214
 | 
				
			||||||
2024/04/07-20:09:01.423397 7f38a10006c0 Level-0 table #89: started
 | 
					2025/08/12-23:24:44.447479 7f12edffb6c0 Level-0 table #219: started
 | 
				
			||||||
2024/04/07-20:09:01.423433 7f38a10006c0 Level-0 table #89: 0 bytes OK
 | 
					2025/08/12-23:24:44.447513 7f12edffb6c0 Level-0 table #219: 0 bytes OK
 | 
				
			||||||
2024/04/07-20:09:01.430760 7f38a10006c0 Delete type=0 #87
 | 
					2025/08/12-23:24:44.453775 7f12edffb6c0 Delete type=0 #217
 | 
				
			||||||
2024/04/07-20:09:01.438028 7f38a10006c0 Manual compaction at level-0 from '!items!1NhJH4IJpxsGmLB8' @ 72057594037927935 : 1 .. '!items!y1yOenfAJTsb3r6e' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/07-20:09:01.438088 7f38a10006c0 Manual compaction at level-1 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-000090
 | 
					MANIFEST-000220
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
2024/04/11-06:57:01.689381 7faaec2006c0 Recovering log #88
 | 
					2025/08/13-09:34:30.920597 7f12effff6c0 Recovering log #218
 | 
				
			||||||
2024/04/11-06:57:01.700347 7faaec2006c0 Delete type=3 #86
 | 
					2025/08/13-09:34:30.937506 7f12effff6c0 Delete type=3 #216
 | 
				
			||||||
2024/04/11-06:57:01.700444 7faaec2006c0 Delete type=0 #88
 | 
					2025/08/13-09:34:30.937577 7f12effff6c0 Delete type=0 #218
 | 
				
			||||||
2024/04/11-12:35:54.534701 7faaeae006c0 Level-0 table #93: started
 | 
					2025/08/13-09:38:15.152019 7f12edffb6c0 Level-0 table #223: started
 | 
				
			||||||
2024/04/11-12:35:54.534743 7faaeae006c0 Level-0 table #93: 0 bytes OK
 | 
					2025/08/13-09:38:15.152074 7f12edffb6c0 Level-0 table #223: 0 bytes OK
 | 
				
			||||||
2024/04/11-12:35:54.541690 7faaeae006c0 Delete type=0 #91
 | 
					2025/08/13-09:38:15.158671 7f12edffb6c0 Delete type=0 #221
 | 
				
			||||||
2024/04/11-12:35:54.548309 7faaeae006c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/11-12:35:54.556094 7faaeae006c0 Manual compaction at level-1 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/04/07-18:53:23.368773 7f38a3e006c0 Recovering log #84
 | 
					2025/08/12-23:22:09.953525 7f12ef7fe6c0 Recovering log #214
 | 
				
			||||||
2024/04/07-18:53:23.379276 7f38a3e006c0 Delete type=3 #82
 | 
					2025/08/12-23:22:09.999140 7f12ef7fe6c0 Delete type=3 #212
 | 
				
			||||||
2024/04/07-18:53:23.379342 7f38a3e006c0 Delete type=0 #84
 | 
					2025/08/12-23:22:09.999193 7f12ef7fe6c0 Delete type=0 #214
 | 
				
			||||||
2024/04/07-20:09:01.430916 7f38a10006c0 Level-0 table #89: started
 | 
					2025/08/12-23:24:44.461664 7f12edffb6c0 Level-0 table #219: started
 | 
				
			||||||
2024/04/07-20:09:01.430951 7f38a10006c0 Level-0 table #89: 0 bytes OK
 | 
					2025/08/12-23:24:44.461699 7f12edffb6c0 Level-0 table #219: 0 bytes OK
 | 
				
			||||||
2024/04/07-20:09:01.437804 7f38a10006c0 Delete type=0 #87
 | 
					2025/08/12-23:24:44.467731 7f12edffb6c0 Delete type=0 #217
 | 
				
			||||||
2024/04/07-20:09:01.438041 7f38a10006c0 Manual compaction at level-0 from '!items!1ETVaPBtjDtzelK1' @ 72057594037927935 : 1 .. '!items!zbsVCsWxRzkzzG1N' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/07-20:09:01.438076 7f38a10006c0 Manual compaction at level-1 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-000090
 | 
					MANIFEST-000220
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
2024/04/11-06:57:01.640175 7faaeb8006c0 Recovering log #88
 | 
					2025/08/13-09:34:30.839532 7f12ee7fc6c0 Recovering log #218
 | 
				
			||||||
2024/04/11-06:57:01.651029 7faaeb8006c0 Delete type=3 #86
 | 
					2025/08/13-09:34:30.855749 7f12ee7fc6c0 Delete type=3 #216
 | 
				
			||||||
2024/04/11-06:57:01.651155 7faaeb8006c0 Delete type=0 #88
 | 
					2025/08/13-09:34:30.855852 7f12ee7fc6c0 Delete type=0 #218
 | 
				
			||||||
2024/04/11-12:35:54.513589 7faaeae006c0 Level-0 table #93: started
 | 
					2025/08/13-09:38:15.106127 7f12edffb6c0 Level-0 table #223: started
 | 
				
			||||||
2024/04/11-12:35:54.513622 7faaeae006c0 Level-0 table #93: 0 bytes OK
 | 
					2025/08/13-09:38:15.106209 7f12edffb6c0 Level-0 table #223: 0 bytes OK
 | 
				
			||||||
2024/04/11-12:35:54.521248 7faaeae006c0 Delete type=0 #91
 | 
					2025/08/13-09:38:15.112456 7f12edffb6c0 Delete type=0 #221
 | 
				
			||||||
2024/04/11-12:35:54.527836 7faaeae006c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/11-12:35:54.534686 7faaeae006c0 Manual compaction at level-1 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/04/07-18:53:23.326905 7f38a2a006c0 Recovering log #84
 | 
					2025/08/12-23:22:09.739184 7f12ef7fe6c0 Recovering log #214
 | 
				
			||||||
2024/04/07-18:53:23.336578 7f38a2a006c0 Delete type=3 #82
 | 
					2025/08/12-23:22:09.787438 7f12ef7fe6c0 Delete type=3 #212
 | 
				
			||||||
2024/04/07-18:53:23.336698 7f38a2a006c0 Delete type=0 #84
 | 
					2025/08/12-23:22:09.787511 7f12ef7fe6c0 Delete type=0 #214
 | 
				
			||||||
2024/04/07-20:09:01.416410 7f38a10006c0 Level-0 table #89: started
 | 
					2025/08/12-23:24:44.402280 7f12edffb6c0 Level-0 table #219: started
 | 
				
			||||||
2024/04/07-20:09:01.416465 7f38a10006c0 Level-0 table #89: 0 bytes OK
 | 
					2025/08/12-23:24:44.402330 7f12edffb6c0 Level-0 table #219: 0 bytes OK
 | 
				
			||||||
2024/04/07-20:09:01.423224 7f38a10006c0 Delete type=0 #87
 | 
					2025/08/12-23:24:44.408548 7f12edffb6c0 Delete type=0 #217
 | 
				
			||||||
2024/04/07-20:09:01.438013 7f38a10006c0 Manual compaction at level-0 from '!items!0fPXtA5LkLgG8uDj' @ 72057594037927935 : 1 .. '!items!zvtBlG6KCIn0oCVk' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/07-20:09:01.438063 7f38a10006c0 Manual compaction at level-1 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-000090
 | 
					MANIFEST-000220
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
2024/04/11-06:57:01.590584 7faaec2006c0 Recovering log #88
 | 
					2025/08/13-09:34:30.767828 7f12effff6c0 Recovering log #218
 | 
				
			||||||
2024/04/11-06:57:01.601094 7faaec2006c0 Delete type=3 #86
 | 
					2025/08/13-09:34:30.796027 7f12effff6c0 Delete type=3 #216
 | 
				
			||||||
2024/04/11-06:57:01.601188 7faaec2006c0 Delete type=0 #88
 | 
					2025/08/13-09:34:30.796112 7f12effff6c0 Delete type=0 #218
 | 
				
			||||||
2024/04/11-12:35:54.493515 7faaeae006c0 Level-0 table #93: started
 | 
					2025/08/13-09:38:15.084910 7f12edffb6c0 Level-0 table #223: started
 | 
				
			||||||
2024/04/11-12:35:54.493550 7faaeae006c0 Level-0 table #93: 0 bytes OK
 | 
					2025/08/13-09:38:15.084968 7f12edffb6c0 Level-0 table #223: 0 bytes OK
 | 
				
			||||||
2024/04/11-12:35:54.500264 7faaeae006c0 Delete type=0 #91
 | 
					2025/08/13-09:38:15.091780 7f12edffb6c0 Delete type=0 #221
 | 
				
			||||||
2024/04/11-12:35:54.507213 7faaeae006c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/11-12:35:54.513576 7faaeae006c0 Manual compaction at level-1 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/04/07-18:53:23.286666 7f38a3e006c0 Recovering log #84
 | 
					2025/08/12-23:22:09.532032 7f12ef7fe6c0 Recovering log #214
 | 
				
			||||||
2024/04/07-18:53:23.296985 7f38a3e006c0 Delete type=3 #82
 | 
					2025/08/12-23:22:09.583613 7f12ef7fe6c0 Delete type=3 #212
 | 
				
			||||||
2024/04/07-18:53:23.297078 7f38a3e006c0 Delete type=0 #84
 | 
					2025/08/12-23:22:09.583679 7f12ef7fe6c0 Delete type=0 #214
 | 
				
			||||||
2024/04/07-20:09:01.387002 7f38a10006c0 Level-0 table #89: started
 | 
					2025/08/12-23:24:44.414597 7f12edffb6c0 Level-0 table #219: started
 | 
				
			||||||
2024/04/07-20:09:01.387032 7f38a10006c0 Level-0 table #89: 0 bytes OK
 | 
					2025/08/12-23:24:44.414620 7f12edffb6c0 Level-0 table #219: 0 bytes OK
 | 
				
			||||||
2024/04/07-20:09:01.394935 7f38a10006c0 Delete type=0 #87
 | 
					2025/08/12-23:24:44.420650 7f12edffb6c0 Delete type=0 #217
 | 
				
			||||||
2024/04/07-20:09:01.408951 7f38a10006c0 Manual compaction at level-0 from '!items!0EAAt0qSzcD9VRBH' @ 72057594037927935 : 1 .. '!items!zfpjROW9LDAlXUkN' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/07-20:09:01.409003 7f38a10006c0 Manual compaction at level-1 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-000090
 | 
					MANIFEST-000220
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
2024/04/11-06:57:01.623246 7faaec2006c0 Recovering log #88
 | 
					2025/08/13-09:34:30.818936 7f12ef7fe6c0 Recovering log #218
 | 
				
			||||||
2024/04/11-06:57:01.634524 7faaec2006c0 Delete type=3 #86
 | 
					2025/08/13-09:34:30.835911 7f12ef7fe6c0 Delete type=3 #216
 | 
				
			||||||
2024/04/11-06:57:01.634699 7faaec2006c0 Delete type=0 #88
 | 
					2025/08/13-09:34:30.836028 7f12ef7fe6c0 Delete type=0 #218
 | 
				
			||||||
2024/04/11-12:35:54.507245 7faaeae006c0 Level-0 table #93: started
 | 
					2025/08/13-09:38:15.091988 7f12edffb6c0 Level-0 table #223: started
 | 
				
			||||||
2024/04/11-12:35:54.507282 7faaeae006c0 Level-0 table #93: 0 bytes OK
 | 
					2025/08/13-09:38:15.092048 7f12edffb6c0 Level-0 table #223: 0 bytes OK
 | 
				
			||||||
2024/04/11-12:35:54.513357 7faaeae006c0 Delete type=0 #91
 | 
					2025/08/13-09:38:15.098923 7f12edffb6c0 Delete type=0 #221
 | 
				
			||||||
2024/04/11-12:35:54.521447 7faaeae006c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/11-12:35:54.527846 7faaeae006c0 Manual compaction at level-1 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/04/07-18:53:23.313599 7f38a3e006c0 Recovering log #84
 | 
					2025/08/12-23:22:09.678492 7f12eeffd6c0 Recovering log #214
 | 
				
			||||||
2024/04/07-18:53:23.324153 7f38a3e006c0 Delete type=3 #82
 | 
					2025/08/12-23:22:09.736918 7f12eeffd6c0 Delete type=3 #212
 | 
				
			||||||
2024/04/07-18:53:23.324228 7f38a3e006c0 Delete type=0 #84
 | 
					2025/08/12-23:22:09.737004 7f12eeffd6c0 Delete type=0 #214
 | 
				
			||||||
2024/04/07-20:09:01.395118 7f38a10006c0 Level-0 table #89: started
 | 
					2025/08/12-23:24:44.408642 7f12edffb6c0 Level-0 table #219: started
 | 
				
			||||||
2024/04/07-20:09:01.395150 7f38a10006c0 Level-0 table #89: 0 bytes OK
 | 
					2025/08/12-23:24:44.408666 7f12edffb6c0 Level-0 table #219: 0 bytes OK
 | 
				
			||||||
2024/04/07-20:09:01.401527 7f38a10006c0 Delete type=0 #87
 | 
					2025/08/12-23:24:44.414489 7f12edffb6c0 Delete type=0 #217
 | 
				
			||||||
2024/04/07-20:09:01.408979 7f38a10006c0 Manual compaction at level-0 from '!items!0cNSRJVPk3GbvxfD' @ 72057594037927935 : 1 .. '!items!yWDg2KlXEz33TSmZ' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/07-20:09:01.409014 7f38a10006c0 Manual compaction at level-1 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-000090
 | 
					MANIFEST-000223
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
2024/04/11-06:57:01.572649 7faaeb8006c0 Recovering log #88
 | 
					2025/08/13-09:34:30.747816 7f12ee7fc6c0 Recovering log #221
 | 
				
			||||||
2024/04/11-06:57:01.584363 7faaeb8006c0 Delete type=3 #86
 | 
					2025/08/13-09:34:30.764412 7f12ee7fc6c0 Delete type=3 #219
 | 
				
			||||||
2024/04/11-06:57:01.584513 7faaeb8006c0 Delete type=0 #88
 | 
					2025/08/13-09:34:30.764577 7f12ee7fc6c0 Delete type=0 #221
 | 
				
			||||||
2024/04/11-12:35:54.487108 7faaeae006c0 Level-0 table #93: started
 | 
					2025/08/13-09:38:15.078169 7f12edffb6c0 Level-0 table #226: started
 | 
				
			||||||
2024/04/11-12:35:54.487148 7faaeae006c0 Level-0 table #93: 0 bytes OK
 | 
					2025/08/13-09:38:15.078262 7f12edffb6c0 Level-0 table #226: 0 bytes OK
 | 
				
			||||||
2024/04/11-12:35:54.493394 7faaeae006c0 Delete type=0 #91
 | 
					2025/08/13-09:38:15.084668 7f12edffb6c0 Delete type=0 #224
 | 
				
			||||||
2024/04/11-12:35:54.500434 7faaeae006c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/11-12:35:54.507231 7faaeae006c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 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/04/07-18:53:23.272721 7f38a2a006c0 Recovering log #84
 | 
					2025/08/12-23:22:09.475992 7f12effff6c0 Recovering log #217
 | 
				
			||||||
2024/04/07-18:53:23.283700 7f38a2a006c0 Delete type=3 #82
 | 
					2025/08/12-23:22:09.530135 7f12effff6c0 Delete type=3 #215
 | 
				
			||||||
2024/04/07-18:53:23.283752 7f38a2a006c0 Delete type=0 #84
 | 
					2025/08/12-23:22:09.530186 7f12effff6c0 Delete type=0 #217
 | 
				
			||||||
2024/04/07-20:09:01.380207 7f38a10006c0 Level-0 table #89: started
 | 
					2025/08/12-23:24:44.420774 7f12edffb6c0 Level-0 table #222: started
 | 
				
			||||||
2024/04/07-20:09:01.380246 7f38a10006c0 Level-0 table #89: 0 bytes OK
 | 
					2025/08/12-23:24:44.420800 7f12edffb6c0 Level-0 table #222: 0 bytes OK
 | 
				
			||||||
2024/04/07-20:09:01.386817 7f38a10006c0 Delete type=0 #87
 | 
					2025/08/12-23:24:44.427391 7f12edffb6c0 Delete type=0 #220
 | 
				
			||||||
2024/04/07-20:09:01.395104 7f38a10006c0 Manual compaction at level-0 from '!items!0V86n4TU8NegrR2B' @ 72057594037927935 : 1 .. '!items!zEl2NQsnCpELVWzh' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/07-20:09:01.408967 7f38a10006c0 Manual compaction at level-1 from '!items!0V86n4TU8NegrR2B' @ 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-000090
 | 
					MANIFEST-000220
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
2024/04/11-06:57:01.605922 7faaeb8006c0 Recovering log #88
 | 
					2025/08/13-09:34:30.798607 7f12eeffd6c0 Recovering log #218
 | 
				
			||||||
2024/04/11-06:57:01.617768 7faaeb8006c0 Delete type=3 #86
 | 
					2025/08/13-09:34:30.815801 7f12eeffd6c0 Delete type=3 #216
 | 
				
			||||||
2024/04/11-06:57:01.617864 7faaeb8006c0 Delete type=0 #88
 | 
					2025/08/13-09:34:30.815877 7f12eeffd6c0 Delete type=0 #218
 | 
				
			||||||
2024/04/11-12:35:54.500467 7faaeae006c0 Level-0 table #93: started
 | 
					2025/08/13-09:38:15.099158 7f12edffb6c0 Level-0 table #223: started
 | 
				
			||||||
2024/04/11-12:35:54.500504 7faaeae006c0 Level-0 table #93: 0 bytes OK
 | 
					2025/08/13-09:38:15.099214 7f12edffb6c0 Level-0 table #223: 0 bytes OK
 | 
				
			||||||
2024/04/11-12:35:54.507026 7faaeae006c0 Delete type=0 #91
 | 
					2025/08/13-09:38:15.105555 7f12edffb6c0 Delete type=0 #221
 | 
				
			||||||
2024/04/11-12:35:54.513541 7faaeae006c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/11-12:35:54.521465 7faaeae006c0 Manual compaction at level-1 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/04/07-18:53:23.301085 7f38a2a006c0 Recovering log #84
 | 
					2025/08/12-23:22:09.585932 7f12ee7fc6c0 Recovering log #214
 | 
				
			||||||
2024/04/07-18:53:23.310831 7f38a2a006c0 Delete type=3 #82
 | 
					2025/08/12-23:22:09.675400 7f12ee7fc6c0 Delete type=3 #212
 | 
				
			||||||
2024/04/07-18:53:23.310883 7f38a2a006c0 Delete type=0 #84
 | 
					2025/08/12-23:22:09.675482 7f12ee7fc6c0 Delete type=0 #214
 | 
				
			||||||
2024/04/07-20:09:01.401713 7f38a10006c0 Level-0 table #89: started
 | 
					2025/08/12-23:24:44.434363 7f12edffb6c0 Level-0 table #219: started
 | 
				
			||||||
2024/04/07-20:09:01.401749 7f38a10006c0 Level-0 table #89: 0 bytes OK
 | 
					2025/08/12-23:24:44.434400 7f12edffb6c0 Level-0 table #219: 0 bytes OK
 | 
				
			||||||
2024/04/07-20:09:01.408764 7f38a10006c0 Delete type=0 #87
 | 
					2025/08/12-23:24:44.440785 7f12edffb6c0 Delete type=0 #217
 | 
				
			||||||
2024/04/07-20:09:01.408992 7f38a10006c0 Manual compaction at level-0 from '!items!2QqvtClSVnh5ejXu' @ 72057594037927935 : 1 .. '!items!xzRJ6JP1HqoqxLdj' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/07-20:09:01.409025 7f38a10006c0 Manual compaction at level-1 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-000090
 | 
					MANIFEST-000221
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
2024/04/11-06:57:01.671738 7faaeb8006c0 Recovering log #88
 | 
					2025/08/13-09:34:30.899271 7f12ee7fc6c0 Recovering log #219
 | 
				
			||||||
2024/04/11-06:57:01.681978 7faaeb8006c0 Delete type=3 #86
 | 
					2025/08/13-09:34:30.915571 7f12ee7fc6c0 Delete type=3 #217
 | 
				
			||||||
2024/04/11-06:57:01.682066 7faaeb8006c0 Delete type=0 #88
 | 
					2025/08/13-09:34:30.915754 7f12ee7fc6c0 Delete type=0 #219
 | 
				
			||||||
2024/04/11-12:35:54.527853 7faaeae006c0 Level-0 table #93: started
 | 
					2025/08/13-09:38:15.131400 7f12edffb6c0 Level-0 table #224: started
 | 
				
			||||||
2024/04/11-12:35:54.527873 7faaeae006c0 Level-0 table #93: 0 bytes OK
 | 
					2025/08/13-09:38:15.131461 7f12edffb6c0 Level-0 table #224: 0 bytes OK
 | 
				
			||||||
2024/04/11-12:35:54.534514 7faaeae006c0 Delete type=0 #91
 | 
					2025/08/13-09:38:15.137830 7f12edffb6c0 Delete type=0 #222
 | 
				
			||||||
2024/04/11-12:35:54.541859 7faaeae006c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/11-12:35:54.548319 7faaeae006c0 Manual compaction at level-1 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/04/07-18:53:23.353906 7f38a2a006c0 Recovering log #84
 | 
					2025/08/12-23:22:09.898470 7f12ee7fc6c0 Recovering log #215
 | 
				
			||||||
2024/04/07-18:53:23.364095 7f38a2a006c0 Delete type=3 #82
 | 
					2025/08/12-23:22:09.950596 7f12ee7fc6c0 Delete type=3 #213
 | 
				
			||||||
2024/04/07-18:53:23.364166 7f38a2a006c0 Delete type=0 #84
 | 
					2025/08/12-23:22:09.950662 7f12ee7fc6c0 Delete type=0 #215
 | 
				
			||||||
2024/04/07-20:09:01.409117 7f38a10006c0 Level-0 table #89: started
 | 
					2025/08/12-23:24:44.427852 7f12edffb6c0 Level-0 table #220: started
 | 
				
			||||||
2024/04/07-20:09:01.409167 7f38a10006c0 Level-0 table #89: 0 bytes OK
 | 
					2025/08/12-23:24:44.427889 7f12edffb6c0 Level-0 table #220: 0 bytes OK
 | 
				
			||||||
2024/04/07-20:09:01.416153 7f38a10006c0 Delete type=0 #87
 | 
					2025/08/12-23:24:44.434222 7f12edffb6c0 Delete type=0 #218
 | 
				
			||||||
2024/04/07-20:09:01.437996 7f38a10006c0 Manual compaction at level-0 from '!items!19r9ijZUyvnlIqgm' @ 72057594037927935 : 1 .. '!items!zON0h5SjFyANjPnA' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/07-20:09:01.438052 7f38a10006c0 Manual compaction at level-1 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-000090
 | 
					MANIFEST-000218
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
2024/04/11-06:57:01.704478 7faaeb8006c0 Recovering log #88
 | 
					2025/08/13-09:34:30.941134 7f12eeffd6c0 Recovering log #216
 | 
				
			||||||
2024/04/11-06:57:01.716228 7faaeb8006c0 Delete type=3 #86
 | 
					2025/08/13-09:34:30.958072 7f12eeffd6c0 Delete type=3 #214
 | 
				
			||||||
2024/04/11-06:57:01.716326 7faaeb8006c0 Delete type=0 #88
 | 
					2025/08/13-09:34:30.958189 7f12eeffd6c0 Delete type=0 #216
 | 
				
			||||||
2024/04/11-12:35:54.541876 7faaeae006c0 Level-0 table #93: started
 | 
					2025/08/13-09:38:15.158957 7f12edffb6c0 Level-0 table #221: started
 | 
				
			||||||
2024/04/11-12:35:54.542038 7faaeae006c0 Level-0 table #93: 0 bytes OK
 | 
					2025/08/13-09:38:15.159011 7f12edffb6c0 Level-0 table #221: 0 bytes OK
 | 
				
			||||||
2024/04/11-12:35:54.548200 7faaeae006c0 Delete type=0 #91
 | 
					2025/08/13-09:38:15.165278 7f12edffb6c0 Delete type=0 #219
 | 
				
			||||||
2024/04/11-12:35:54.556076 7faaeae006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
 | 
					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/04/07-18:53:23.381952 7f38a2a006c0 Recovering log #84
 | 
					2025/08/12-23:22:10.001919 7f12eeffd6c0 Recovering log #212
 | 
				
			||||||
2024/04/07-18:53:23.393154 7f38a2a006c0 Delete type=3 #82
 | 
					2025/08/12-23:22:10.057666 7f12eeffd6c0 Delete type=3 #210
 | 
				
			||||||
2024/04/07-18:53:23.393220 7f38a2a006c0 Delete type=0 #84
 | 
					2025/08/12-23:22:10.057755 7f12eeffd6c0 Delete type=0 #212
 | 
				
			||||||
2024/04/07-20:09:01.438343 7f38a10006c0 Level-0 table #89: started
 | 
					2025/08/12-23:24:44.454051 7f12edffb6c0 Level-0 table #217: started
 | 
				
			||||||
2024/04/07-20:09:01.438398 7f38a10006c0 Level-0 table #89: 0 bytes OK
 | 
					2025/08/12-23:24:44.454080 7f12edffb6c0 Level-0 table #217: 0 bytes OK
 | 
				
			||||||
2024/04/07-20:09:01.445523 7f38a10006c0 Delete type=0 #87
 | 
					2025/08/12-23:24:44.461512 7f12edffb6c0 Delete type=0 #215
 | 
				
			||||||
2024/04/07-20:09:01.459804 7f38a10006c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
 | 
					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-000058
 | 
					MANIFEST-000189
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
2024/04/11-06:57:01.720184 7faaec2006c0 Recovering log #56
 | 
					2025/08/13-09:34:30.962421 7f12ef7fe6c0 Recovering log #187
 | 
				
			||||||
2024/04/11-06:57:01.761076 7faaec2006c0 Delete type=3 #54
 | 
					2025/08/13-09:34:30.983901 7f12ef7fe6c0 Delete type=3 #185
 | 
				
			||||||
2024/04/11-06:57:01.761174 7faaec2006c0 Delete type=0 #56
 | 
					2025/08/13-09:34:30.983970 7f12ef7fe6c0 Delete type=0 #187
 | 
				
			||||||
2024/04/11-12:35:54.548328 7faaeae006c0 Level-0 table #61: started
 | 
					2025/08/13-09:38:15.165535 7f12edffb6c0 Level-0 table #192: started
 | 
				
			||||||
2024/04/11-12:35:54.548352 7faaeae006c0 Level-0 table #61: 0 bytes OK
 | 
					2025/08/13-09:38:15.165599 7f12edffb6c0 Level-0 table #192: 0 bytes OK
 | 
				
			||||||
2024/04/11-12:35:54.555900 7faaeae006c0 Delete type=0 #59
 | 
					2025/08/13-09:38:15.172985 7f12edffb6c0 Delete type=0 #190
 | 
				
			||||||
2024/04/11-12:35:54.562976 7faaeae006c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/11-12:35:54.563070 7faaeae006c0 Manual compaction at level-1 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/04/07-18:53:23.395948 7f38a3e006c0 Recovering log #52
 | 
					2025/08/12-23:22:10.060101 7f12effff6c0 Recovering log #183
 | 
				
			||||||
2024/04/07-18:53:23.405511 7f38a3e006c0 Delete type=3 #50
 | 
					2025/08/12-23:22:10.105374 7f12effff6c0 Delete type=3 #181
 | 
				
			||||||
2024/04/07-18:53:23.405564 7f38a3e006c0 Delete type=0 #52
 | 
					2025/08/12-23:22:10.105452 7f12effff6c0 Delete type=0 #183
 | 
				
			||||||
2024/04/07-20:09:01.445775 7f38a10006c0 Level-0 table #57: started
 | 
					2025/08/12-23:24:44.474162 7f12edffb6c0 Level-0 table #188: started
 | 
				
			||||||
2024/04/07-20:09:01.445830 7f38a10006c0 Level-0 table #57: 0 bytes OK
 | 
					2025/08/12-23:24:44.474198 7f12edffb6c0 Level-0 table #188: 0 bytes OK
 | 
				
			||||||
2024/04/07-20:09:01.452616 7f38a10006c0 Delete type=0 #55
 | 
					2025/08/12-23:24:44.481148 7f12edffb6c0 Delete type=0 #186
 | 
				
			||||||
2024/04/07-20:09:01.459829 7f38a10006c0 Manual compaction at level-0 from '!scenes!8DjkNeeujp2qff1N' @ 72057594037927935 : 1 .. '!scenes!ypDutqjqZcr7lx6I' @ 0 : 0; will stop at (end)
 | 
					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)
 | 
				
			||||||
2024/04/07-20:09:01.459870 7f38a10006c0 Manual compaction at level-1 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