Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save antonioeduardofernandes/3d1ab814cc93570472ac67517a4a09e3 to your computer and use it in GitHub Desktop.
Save antonioeduardofernandes/3d1ab814cc93570472ac67517a4a09e3 to your computer and use it in GitHub Desktop.
await Dialog.prompt({
content: `
<h1>Current Weather</h1>
<select id="currentWeather">
<option value="noWind">No Winds</option>
<option value="lowWind">Low Winds</option>
<option value="highWind">High Winds</option>
</select>
`,
callback: html => {
let currentWeather = html.find('[id="currentWeather"]').val()
game.tables.getName(currentWeather).draw()
},
})
@DuncfordUK
Copy link

I've also just had a look in the console to check what's going on when I run the Macro, and this is what I get:
image

"Promise" is a character in our game and I had their token selected when I executed the macro, so maybe that's why it's saying in promise?
Although I also just deselected all tokens, so had nothing selected in the scene and the message returned the same.

@antonioeduardofernandes
Copy link
Author

antonioeduardofernandes commented May 28, 2022

No problem, it's better to discuss it here!
Be sure you get the options "Draw with Replacement?" and "Display Roll to Chat" marked on your tables (noWind, lowWind and highWind)!

image

Since you want to display the result on the public Chat, I've removed unused and unnecessary code.
It's not storing the values yet.
Let me know if it works properly now.

@DuncfordUK
Copy link

Sorry it's taken me so long to test it, I've been busy with other things.
That seems to work now!

I've got two thoughts:

  1. The dialog is changed slightly to be "Fine Weather", "Fair Weather", "Foul Weather". Each of those options makes a roll against two tables - Wind and Rain (Fine = noWind + noRain; Fair = lowWind + lightRain; Foul = highWind + heavyRain); OR
  2. Get rid of the dialog and the first execution of the Macro just rolls randomly against Wind and a Rain table.

Is it possible to concatenate the results, so that it rolls both a Wind and Rain in the background, and then presents them both together as a single result?

`let currentWind = html.find('[id="currentWind"]').val()
game.tables.getName(currentWind).draw()

let currentRain = html.find('[id="currentRain"]').val()
game.tables.getName(currentRain).draw()`

@DuncfordUK
Copy link

DuncfordUK commented Jun 1, 2022

await Dialog.prompt({
content:
<h1>Current Weather</h1>
<select id="currentWind">
<option value="noWind">No Winds</option>
<option value="lowWind">Low Winds</option>
<option value="highWind">High Winds</option>
</select>
<select id="currentRain">
<option value="noRain">No Rain</option>
<option value="lightRain">Light Rain</option>
<option value="heavyRain">Heavy Rain</option>
</select>
,
callback: html => {
let currentWind = html.find('[id="currentWind"]').val()
game.tables.getName(currentWind).draw()
let currentRain = html.find('[id="currentRain"]').val()
game.tables.getName(currentRain).draw()
},
})

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment