let specification = this.item.system.specification.value; let choice = []; if (!specification || specification == "Trained Skills") { choice = await ItemDialog.create(ItemDialog.objectToArray({ broken: "Broken", drive: "Drive", entertain: "Entertain", fetch: "Fetch", guard: "Guard", home: "Home", magic: "Magic", mount: "Mount", war: "War" }, this.effect.img), "unlimited", "Choose Training"); } else { choice = specification.split(", ").map(i => { return { id : i.toLowerCase(), name : i } }); } if (choice.length) { let changes = foundry.utils.deepClone(this.effect.changes); for(let training of choice) { switch(training.id) { case "broken" : let roll = await new Roll("2d10").roll(); roll.toMessage(this.script.getChatData()); changes.push({value : roll.total, mode : 2, key : "system.characteristics.fel.modifier"}) if (this.actor.type == "creature") { let bestial = this.actor.itemTypes.trait.find(i => i.name == "Bestial"); if (bestial) { bestial.update({"system.disabled" : true}) } } break; case "drive" : break; case "entertain" : break; case "fetch" : break; case "guard" : let territorial = await fromUuid("Compendium.wfrp4e-core.items.Item.JIAe7i7dqTQBu4do"); await this.actor.createEmbeddedDocuments("Item", [territorial], {fromEffect: this.effect.id}) setProperty(args, "options.keepId", true); break; case "home" : break; case "magic" : break; case "mount" : break; case "war" : changes.push({value : 10, mode : 2, key : "system.characteristics.ws.modifier"}) break; } } this.effect.updateSource({name : `${this.effect.name} (${choice.map(i => i.name).join(", ")})`, changes, "flags.wfrp4e.trained" : choice.map(i => i.id)}) this.item.updateSource({"system.specification.value" : `${choice.map(i => i.name).join(", ")}`}) }