{ "folder": "1e5EaquD2GTpHlOW", "name": "Tree Wind Select", "type": "script", "_id": "wcf1tPQc3HAtk2tv", "author": "sVoCvBU1knmXzoYe", "img": "icons/magic/nature/tree-spirit-blue.webp", "scope": "global", "command": "let choices = {\n 'none': 'No Wind',\n 'breeze': 'Leaf Rustle',\n 'high': 'High Wind',\n};\nlet rippleEffect = 'MB - Tree Breeze Ripple';\nlet swayEffect = 'MB - Tree Swaying in Wind';\nlet content = '';\nlet wind;\ntry {\n wind = await foundry.applications.api.DialogV2.prompt({\n window: { title: \"Choose Tree Style\" },\n content,\n ok: {\n label: 'Set Tree Wind Effect',\n callback: (event, button, dialog) => button.form.elements.wind.value\n }\n });\n} catch {\n console.log(\"no choice made\");\n return;\n}\nif (!wind) {\n console.log(\"no choice made\");\n return;\n}\n\nlet ripplingTrees = canvas.scene.tiles.filter(t => Tagger.hasTags(t, 'TreeCanopy'))\nlet swayingTrees = canvas.scene.tiles.filter(t => Tagger.hasTags(t, ['TreeBare', 'TreeShadow', 'TreeCanopy'], {matchAny: true}))\n\nif (wind === 'none') {\n \n}\n\nif (wind === 'none') {\n ripplingTrees.forEach(async t => await TokenMagic.deleteFilters(t.object, rippleEffect))\n}\nif (wind === 'none' || wind === 'breeze') {\n swayingTrees.forEach(async t => await TokenMagic.deleteFilters(t.object, swayEffect))\n}\nif (wind === 'breeze' || wind === 'high') {\n ripplingTrees.forEach(async t => await TokenMagic.addUpdateFilters(t.object, TokenMagic.getPreset(rippleEffect)))\n}\nif (wind === 'high') {\n swayingTrees.forEach(async t => await TokenMagic.addUpdateFilters(t.object, TokenMagic.getPreset(swayEffect)))\n}", "sort": 0, "ownership": { "default": 0, "sVoCvBU1knmXzoYe": 3 }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, "coreVersion": "13.345", "systemId": "swade", "systemVersion": "5.0.3", "createdTime": 1750642203681, "modifiedTime": 1750644765778, "lastModifiedBy": "sVoCvBU1knmXzoYe" }, "_key": "!macros!wcf1tPQc3HAtk2tv" }