{"pages":{"start":[{"say":{"label":"<p>You will see a roulette.  Try to stop it on what you want.<\/p>"}},{"choice":{"options":[{"label":"Do it","commands":[{"goto":{"target":"roulette-start"}}]}]}}],"roulette-start":[{"if":{"condition":"!rouletteRunning","commands":[{"notification.create":{"id":"roulette"}},{"notification.create":{"buttonCommands":[{"eval":{"script":"if (currentRoulette) {\r\n  Notification.get('roulette').remove()\r\n  pages.goto(currentRoulette.page)\r\n}\r\nrouletteRunning = false"}}],"buttonLabel":"Stop"}}],"elseCommands":[]}},{"eval":{"script":"rouletteRunning = true\r\ncurrentRoulette = getRandom(rouletteOptions, currentRoulette)\r\nNotification.get('roulette').setTitle(currentRoulette.title)"}},{"timer":{"duration":"$100","style":"hidden","isAsync":true,"commands":[{"eval":{"script":"pages.goto(pages.getCurrentPageId())"}}]}}],"roulette-ruin":[{"say":{"label":"<p>Ruin it.<\/p>"}},{"choice":{"options":[{"label":"Again!","commands":[{"goto":{"target":"roulette-start"}}]}]}}],"roulette-cum":[{"say":{"label":"<p>Cum!<\/p>"}},{"choice":{"options":[{"label":"Again!","commands":[{"goto":{"target":"roulette-start"}}]}]}}],"roulette-deny":[{"say":{"label":"<p>Denied!<\/p>"}},{"choice":{"options":[{"label":"Again!","commands":[{"goto":{"target":"roulette-start"}}]}]}}]},"modules":{"notification":{}},"init":"var rouletteOptions = [\r\n  {title: 'Ruin', page: 'roulette-ruin'},\r\n  {title: 'Cum', page: 'roulette-cum'},\r\n  {title: 'Deny', page: 'roulette-deny'},\r\n]\r\n\r\nfunction randomInt(min, max) {\r\n  return Math.floor(Math.random() * (max - min + 1)) + min\r\n}\r\n\r\nfunction getRandom(opts, avoid) {\r\n  var result = opts[randomInt(0, opts.length-1)]\r\n  var i = 0\r\n  while (result === avoid && i < 10) {\r\n    result = opts[randomInt(0, opts.length-1)]\r\n    i ++\r\n  }\r\n  return result\r\n}\r\n\r\nvar currentRoulette = getRandom(rouletteOptions)\r\nvar rouletteRunning = false"}