let choice1 = [ { type : "armour", name : "Chausses de Mailles" }, { type : "armour", name : "Cotte de Mailles" }, { type : "armour", name : "Coiffe de Mailles" }, ] let choice2 = [ { type : "armour", name : "Chausses de Mailles" }, { type : "armour", name : "Cotte de Mailles" }, { type : "armour", name : "Coiffe de Mailles" }, { type : "armour", name : "Jambières de cuir" }, { type : "armour", name : "Calotte de cuir" }, { type : "armour", name : "Veste de cuir" }, ] let choice3 = [ { type : "armour", name : "Plastron d'acier" }, { type : "armour", name : "Brassards" }, { type : "armour", name : "Heaume" }, { type : "armour", name : "Jambières d'acier" }, ] let choice = await foundry.applications.api.DialogV2.wait({ window : {title : "Choix"}, content : `

Sélectionnez votre choix

  1. Mailles
  2. Mailles et Cuir
  3. Plaques
`, buttons : [ { action : 1, label : "Mailles", callback : () => { return choice1 } }, { action : 2, label : "Mailles et Cuir", callback : () => { return choice2 } }, { action : 3, label : "Plaques", callback : () => { return choice3 } } ] }) let updateObj = this.actor.toObject(); let items = [] for (let c of choice) { let existing if (c.type == "skill") { existing = updateObj.items.find(i => i.name == c.name && i.type == c.type) if (existing && c.diff?.system?.advances?.value) { existing.system.advances.value += c.diff.system.advances.value } } if (!existing) { let item = await game.wfrp4e.utility.find(c.name, c.type) if (item) { let equip = item.system.tags.has("equippable"); item = item.toObject() if (equip) { item.system.equipped.value = true; } items.push(foundry.utils.mergeObject(item, (c.diff || {}))) } else ui.notifications.warn(`Impossible de trouver ${c.name}`, {permanent : true}) } } await this.actor.update(updateObj) this.actor.createEmbeddedDocuments("Item", items);