Skip to content

Commit

Permalink
Added and updated macros
Browse files Browse the repository at this point in the history
  • Loading branch information
AnthonyVadala committed Dec 20, 2020
1 parent 341d284 commit 5449008
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions packs/macros-token.db
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@
{"_id":"jBcKwGUwHS2V6nat","name":"Token Vision Configuration","permission":{"default":0,"y5gmtwxmW3A5ZuOP":3},"type":"chat","flags":{},"scope":"global","command":"// A macro for the Foundry virtual tabletop that lets a user configure their token's vision and lighting settings. This script is taken from Sky's foundry repo here: https://github.com/Sky-Captain-13/foundry/blob/master/scriptMacros/tokenVision.js.\n\nlet applyChanges = false;\nnew Dialog({\n title: `Token Vision Configuration`,\n content: `\n <form>\n <div class=\"form-group\">\n <label>Vision Type:</label>\n <select id=\"vision-type\" name=\"vision-type\">\n <option value=\"nochange\">No Change</option>\n <option value=\"dim0\">Self</option>\n <option value=\"dim30\">Darkvision (30 ft)</option>\n <option value=\"dim60\">Darkvision (60 ft)</option>\n <option value=\"dim90\">Darkvision (90 ft)</option>\n <option value=\"dim120\">Darkvision (120 ft)</option>\n <option value=\"dim150\">Darkvision (150 ft)</option>\n <option value=\"dim180\">Darkvision (180 ft)</option>\n <option value=\"bright120\">Devil's Sight (Warlock)</option>\n </select>\n </div>\n <div class=\"form-group\">\n <label>Light Source:</label>\n <select id=\"light-source\" name=\"light-source\">\n <option value=\"nochange\">No Change</option>\n <option value=\"none\">None</option>\n <option value=\"candle\">Candle</option>\n <option value=\"lamp\">Lamp</option>\n <option value=\"bullseye\">Lantern (Bullseye)</option>\n <option value=\"hooded-dim\">Lantern (Hooded - Dim)</option>\n <option value=\"hooded-bright\">Lantern (Hooded - Bright)</option>\n <option value=\"light\">Light (Cantrip)</option>\n <option value=\"torch\">Torch</option>\n <option value=\"moon-touched\">Moon-Touched</option>\n </select>\n </div>\n </form>\n `,\n buttons: {\n yes: {\n icon: \"<i class='fas fa-check'></i>\",\n label: `Apply Changes`,\n callback: () => applyChanges = true\n },\n no: {\n icon: \"<i class='fas fa-times'></i>\",\n label: `Cancel Changes`\n },\n },\n default: \"yes\",\n close: html => {\n if (applyChanges) {\n for ( let token of canvas.tokens.controlled ) {\n let visionType = html.find('[name=\"vision-type\"]')[0].value || \"none\";\n let lightSource = html.find('[name=\"light-source\"]')[0].value || \"none\";\n let dimSight = 0;\n let brightSight = 0;\n let dimLight = 0;\n let brightLight = 0;\n let lightAngle = 360;\n let lockRotation = token.data.lockRotation;\n let lightAnimation = token.data.lightAnimation;\n let lightAlpha = token.data.lightAlpha;\n let lightColor = token.data.lightColor;\n const colorFire = \"#f8c377\";\n const colorWhite = \"#ffffff\";\n const colorMoonGlow = \"#f4f1c9\";\n // Get Vision Type Values\n switch (visionType) {\n case \"dim0\":\n dimSight = 0;\n brightSight = 0;\n break;\n case \"dim30\":\n dimSight = 30;\n brightSight = 0;\n break;\n case \"dim60\":\n dimSight = 60;\n brightSight = 0;\n break;\n case \"dim90\":\n dimSight = 90;\n brightSight = 0;\n break;\n case \"dim120\":\n dimSight = 120;\n brightSight = 0;\n break;\n case \"dim150\":\n dimSight = 150;\n brightSight = 0;\n break;\n case \"dim180\":\n dimSight = 180;\n brightSight = 0;\n break;\n case \"bright120\":\n dimSight = 0;\n brightSight= 120;\n break;\n case \"nochange\":\n default:\n dimSight = token.data.dimSight;\n brightSight = token.data.brightSight;\n }\n // Get Light Source Values\n switch (lightSource) {\n case \"none\":\n dimLight = 0;\n brightLight = 0;\n lightAnimation = {type: \"none\"};\n break;\n case \"candle\":\n dimLight = 10;\n brightLight = 5;\n lightAnimation = {type: \"torch\", speed: 2, intensity: 2};\n lightColor = colorFire;\n lightAlpha = 0.15;\n break;\n case \"lamp\":\n dimLight = 45;\n brightLight = 15;\n lightAnimation = {type: \"torch\", speed: 2, intensity: 2};\n lightColor = colorFire;\n lightAlpha = 0.15;\n break;\n case \"bullseye\":\n dimLight = 120;\n brightLight = 60;\n lockRotation = false;\n lightAngle = 52.5;\n lightAnimation = {type: \"torch\", speed: 2, intensity: 2};\n lightColor = colorFire;\n lightAlpha = 0.15;\n break;\n case \"hooded-dim\":\n dimLight = 5;\n brightLight = 0;\n lightAnimation = {type: \"torch\", speed: 2, intensity: 2};\n lightColor = colorFire;\n lightAlpha = 0.15;\n break;\n case \"hooded-bright\":\n dimLight = 60;\n brightLight = 30;\n lightAnimation = {type: \"torch\", speed: 2, intensity: 2};\n lightColor = colorFire;\n lightAlpha = 0.15;\n break;\n case \"light\":\n dimLight = 40;\n brightLight = 20;\n lightAnimation = {type: \"none\"};\n lightColor = colorWhite;\n break;\n case \"torch\":\n dimLight = 40;\n brightLight = 20;\n lightAnimation = {type: \"torch\", speed: 2, intensity: 2};\n lightColor = colorFire;\n lightAlpha = 0.15;\n break;\n case \"moon-touched\":\n dimLight = 30;\n brightLight = 15;\n lightAnimation = {type: \"none\"};\n lightColor = colorMoonGlow;\n break;\n case \"nochange\":\n default:\n dimLight = token.data.dimLight;\n brightLight = token.data.brightLight;\n lightAngle = token.data.lightAngle;\n lockRotation = token.data.lockRotation;\n lightAnimation = token.data.lightAnimation;\n lightAlpha = token.data.lightAlpha;\n lightColor = token.data.lightColor;\n }\n // Update Token\n console.log(token);\n token.update({\n vision: true,\n dimSight: dimSight,\n brightSight: brightSight,\n dimLight: dimLight,\n brightLight: brightLight,\n lightAngle: lightAngle,\n lockRotation: lockRotation,\n lightAnimation: lightAnimation,\n lightAlpha: lightAlpha,\n lightColor: lightColor\n });\n }\n }\n }\n}).render(true);","author":"y5gmtwxmW3A5ZuOP","img":"icons/svg/dice-target.svg","actorIds":[]}
{"_id":"p8daoiwkQPAnOJNm","name":"Token Multi Select","permission":{"default":0,"y5gmtwxmW3A5ZuOP":3},"type":"script","flags":{},"scope":"global","command":"/*\nSwap the selected token with another of similar name via a\ndrop-down menu in a dialog box.\n\nTokens for each character should be named similarly but end with\n'_walking.png', '_fighting.png', and '_sneaking.png'. For example,\n'talion_walking.png', 'talion_fighting.png', and 'talion_sneaking.png'\n\nIf a token does not exist, mystery man will be automatically selected.\n*/\n\nif (actor !== undefined && actor !== null) {\n let d = new Dialog({\n title: 'Token Mogrifier',\n content: \"<p>Select a new token</p>\" +\n \"<select name='token' id='token'>\" +\n \"<option value='_walking.png'>Walking</option>\" +\n \"<option value='_fighting.png'>Fighting</option>\" +\n \"<option value='_sneaking.png'>Sneaking</option>\" +\n \"<option value='_unconscious.png'>Unconscious</option>\" +\n \"</select>\",\n buttons: {\n ok: {\n icon: '<i class=\"fas fa-check\"></i>',\n label: \"Do it!\",\n callback: () =>\n token.update({\n img: token.data.img.slice(0, token.data.img.lastIndexOf('_')) + document.getElementById(\"token\").value\n })\n },\n cancel: {\n icon: '<i class=\"fas fa-times\"></i>',\n label: \"Nevermind\",\n callback: () => {}\n }\n }\n });\n d.render(true);\n} else {\n ui.notifications.warn(\"Please select a token.\");\n}\n","author":"y5gmtwxmW3A5ZuOP","img":"icons/svg/dice-target.svg","actorIds":[]}
{"name":"Change Disposition","permission":{"default":0,"y5gmtwxmW3A5ZuOP":3},"type":"script","flags":{},"scope":"global","command":"let applyChanges = false;\nnew Dialog({\n title: `Token Disposition Changer`,\n content: `\n <form>\n <div class=\"form-group\">\n <label>Disposition Type:</label>\n <select id=\"dispo-type\" name=\"dispo-type\">\n <option value=\"nochange\">No Change</option>\n <option value=\"hostile\">Hostile</option>\n <option value=\"neutral\">Neutral</option>\n <option value=\"friendly\">Friendly</option>\n </select>\n </div>\n </form>\n `,\n buttons: {\n yes: {\n icon: \"<i class='fas fa-check'></i>\",\n label: `Apply Changes`,\n callback: () => applyChanges = true\n },\n no: {\n icon: \"<i class='fas fa-times'></i>\",\n label: `Cancel Changes`\n },\n },\n default: \"yes\",\n close: html => {\n if (applyChanges) {\n for ( let token of canvas.tokens.controlled ) {\n let dispoType = html.find('[name=\"dispo-type\"]')[0].value || \"none\";\n switch (dispoType) {\n case \"hostile\":\n token.update({\"disposition\": -1});\n break;\n case \"friendly\":\n token.update({\"disposition\": 1});\n break;\n case \"neutral\":\n token.update({\"disposition\": 0});\n break;\n case \"nochange\":\n default:\n }\n }\n }\n }\n}).render(true);\n","author":"y5gmtwxmW3A5ZuOP","img":"icons/svg/dice-target.svg","actorIds":[],"_id":"soTXCSqJwGWNG9ga"}
{"name":"Randomize Wildcard Tokens","permission":{"default":0,"y5gmtwxmW3A5ZuOP":3},"type":"script","flags":{"core":{"sourceId":"Macro.BSlgjKB4i6nMVS9e"}},"scope":"global","command":"// To apply to only controlled tokens, change the first line to:\n// for(let nextToken of canvas.tokens.controlled) {\nasync function randomizeImages() {\nfor(let nextToken of canvas.tokens.placeables) {\n if (nextToken.actor.data.token.randomImg) {\n let tokenImgArray = await game.actors.get(nextToken.actor.id).getTokenImages();\n let imageChoice = Math.floor(Math.random() * tokenImgArray.length);\n let image = tokenImgArray[imageChoice]\n nextToken.update({ \"img\": image })\n }\n}\n}\nrandomizeImages()","author":"y5gmtwxmW3A5ZuOP","img":"icons/svg/dice-target.svg","actorIds":[],"_id":"Ou2x4SEW35uHCvDh"}

0 comments on commit 5449008

Please sign in to comment.