When I first saw what Wave was all about I immediately set about to use it for playing role playing games. What does (almost) every RPG need? You guessed it, dice.
Introducing "Dicey" the dice rolling robot for Google Wave. If you already have access to Wave all you need to do is invite "area42dice@appspot.com" to your wave and then he'll pay attention to what you are typing. When you ask him to roll some dice for you he will take a moment, roll the dice and tell you the results. How do you ask him?
Simply include inline in your Wave the following syntax "Roll(3d6)" and he will roll 3 six siders and give you the total. (Note, quotes are not necessary, capitalization of Roll is important and there should be no spaces between the Roll and the first parenthesis)
The answer will come back momentarily and will look something like this: 3d6 [2,5,4] = 11
The output should be easy to read. First it repeats what it is evaluating, 3d6 followed by [2,5,4] means that your dice were a 2, a 5 and a 4. Then the total is shown at 11.
More complex options are also supported. For example Roll( 1d20 + 5; 1d8 + 4) will roll your to hit and damage at the same time.
The answer may look like this:
1d20 [2]+5 = 7
1d8 [8]+4 = 12
Each separate expression is separated by a semicolon and each answer is shown on its own line.
Dicey Help
Dicey understands the following commands:
Help(), Donate(), Feedback(), Roll() and Set()
Help() produces this message
Donate() produces a message that will tell you how you can support Dicey.Dicey runs on Google's Appspot application hosting and if the daily quota gets exceeded then Dicey would be shut down for a time. If you wish to help out, the Donate() command will tell you how.
Feedback() opens a new private wave in which you can give praise, ask questions or report bugs to the maintainers of Dicey.
Roll() is designed to execute simple math as well as execute the rolling of dice
Set() is designed to store values or macros to be used inside of Roll() commands by means of variable names
Examples:
Roll(1d20) please note that Roll must be capitalized and there must be no space between Roll and the opening parenthesis.
Roll(6@3d6) to execute a number of identical rolls with seperate sums, use the @ symbol
Roll(1d20+10; 1d20+5; 1d8+2; 1d8+2) to execute a number of different rolls, separate them with semi-colons.
Set($target=20) Roll($target-(1d20+15)) The set command will set a particular variable name (must start with a letter) to any expression including a constant. Reference that expression later by means of the $ operator.
Roll(1d20+15>25) will return a 1 or a 0 for true or false. Currently Dicey also supports < and = signs as well.
To give a more complex example: Roll(4@1d10>6) will roll a ten sided die, check to see if it is greater than six, returning 1 if it is and 0 if it is not. It will do this four time and give you a number between zero and four.
Or how about Roll(6@4d6 high 3) to generate a character for many a popular game system? Also available immediately after a 'd' operation is 'low' 'reroll' and 'rollagain'. E.G. Roll(4d10 rollagain 8..10) will roll more dice for each 8, 9 or 10 rolled in the initial four. The 'high' and 'low' operations take a single number after them as an argument indicating how many dice to keep. The 'reroll' and 'rollagain' operations can take a single number or a range. A range is indicated by two dots, periods or decimals, however you wish to call them. Roll(3d6 reroll 2) will only reroll 2s. Roll(3d6 reroll 1..2) will reroll ones and twos.
One final option, if you need special numbering on your dice or to have a lookup table of dice roll values to other values you can use this really complication operator. This is not for the faint of heart. Roll(4d10 rollagain 10 {1:-1, 2..5:0, 6..10:1} ) will roll four ten sided dice, roll another die for every ten rolled then look at the dice results and map them according to the setup in the {}. A one becomes a negative one "1:-1", then two through five becomes a zero "2..5:0", and finally six through ten become one "6..10:1". This could also be written Roll(4d10 rollagain 10 {-1,0,0,0,0,1,1,1,1} ). When the {} does not have ranges specified it takes the position of the value as the range. If this doesn't make sense, message me on wave and I will try to explain it better.
If you wish to report any bugs, send in any praise, or otherwise communicate with Dicey and his creators, please send an email to dicey@area42games.com. We hope you enjoy your day.
Recent comments
40 weeks 3 days ago
44 weeks 3 days ago
46 weeks 5 days ago
48 weeks 5 hours ago
48 weeks 2 days ago
1 year 1 week ago
1 year 1 week ago
1 year 2 weeks ago
1 year 4 weeks ago
1 year 6 weeks ago