From 11426c3edae92e6f0f88e5d895558bfc20aa7035 Mon Sep 17 00:00:00 2001 From: "dmitry.kirdyashkin" Date: Mon, 2 Oct 2023 09:19:22 +0300 Subject: [PATCH] f --- src/macros/new-dialog-example.js | 21 ++++++ src/macros/select-starting-item.js | 112 +++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 src/macros/new-dialog-example.js create mode 100644 src/macros/select-starting-item.js diff --git a/src/macros/new-dialog-example.js b/src/macros/new-dialog-example.js new file mode 100644 index 0000000..cf7d950 --- /dev/null +++ b/src/macros/new-dialog-example.js @@ -0,0 +1,21 @@ +const myContent = ` + Value: + +`; + +new Dialog({ + title: "My Dialog Title", + content: myContent, + buttons: { + button1: { + label: "Display Value", + callback: (html) => myCallback(html), + icon: `` + } + } +}).render(true); + +function myCallback(html) { + const value = html.find("input#myInputID").val(); + ui.notifications.info(`Value: ${value}`); +} \ No newline at end of file diff --git a/src/macros/select-starting-item.js b/src/macros/select-starting-item.js new file mode 100644 index 0000000..79be80c --- /dev/null +++ b/src/macros/select-starting-item.js @@ -0,0 +1,112 @@ +// старый способ добавить итем персонажу +// +// const compendiumPackName = 'pf2e.feature-effects'; +// const effectName = 'Effect: Rage'; + +// const actor = game.user.character; + +// await pack.getEntry(effectId).then(effect => actor.createOwnedItem(effect) ); + +// get item from compendium to actor +async function getItemFromCompendium (itemName){ + const pack = game.packs.get("sc-items.sc-items"); + await pack.getIndex(); + const itemId = pack.index.find(e => e.name === itemName)._id; + item = [await pack.getDocument(itemId)] + await actor.createEmbeddedDocuments("Item", item) +} + +// проверить что у игрока есть персонаж +if (game.user.character == null){ + ui.notifications.warn('Игроку не назначен персонаж'); + return +} + +let compendium = (Array.from(game.packs)).filter(element => element.metadata.name == 'sc-items') +compendiumData = Array.from(compendium[0].index) +compendiumData.find(element => element.name == 'Рапира/Rapier') + +// найти объект по имени +function findItem(itemName, compendium) { + let compendiumData = (Array.from(game.packs)).filter(element => element.metadata.name == compendium) + compArray = Array.from(compendiumData[0].index) + return compArray.find(element => element.name == itemName) +} + +// получить класс персонажа +// от класса выбрать варианты стартового снаряжения +// передать выбранное снаряжение персонажу +let a = ` + +
+
+ + Select items + +
+ + Legend2 + +
+
    +
  • Длинный меч/Longsword
  • +
  • Рапира/Rapier
  • +
+
+
+
+ + Legend3 + +
+
    +
  • Набор дипломата
  • +
  • Набор артиста
  • +
+
+
+ +
+ +
+ +` + +new Dialog({ + title: "Test Dialog", + // content: a, + template: "./templates/bard.html" + buttons: { + one: { + icon: '', + label: "Option One", + callback: (html) => myCallback(html) + } + } +} +).render(true); + +function myCallback(html) { + // let radios = document.querySelectorAll('input[type="radio"]'); + let radios = html.find('input[type="radio"]'); + // let button = document.querySelector('#button'); + for (let radio of radios) { + if (radio.checked) { + console.log(radio.value); + // item = findItem(radio.value, "sc-items") + // if (item == null || item == undefined){ + // ui.notifications.warn(`Предмет `+radio.value+`не найден в библиотеке`); + // return + // } + getItemFromCompendium(radio.value) + // console.log(item); + } + } + // const value = html.find("input#choise1").val(); + // const array1 = [html.find('input[type="radio"]:checked').val()]; + // const value = html.find('input[type="radio"]:checked').val(); + // ui.notifications.info(`Value: ${value}`); + // console.log(value) + // console.log(array1) + // return value +} \ No newline at end of file