2024-01-09 01:59:50 +00:00
..
2020-02-15 01:03:44 +00:00
2020-02-24 18:52:56 +00:00
2024-01-09 01:59:50 +00:00
2020-06-30 22:03:05 +00:00
2020-06-30 22:03:05 +00:00
2020-06-30 22:03:05 +00:00
2020-02-15 01:03:44 +00:00
2020-06-30 22:03:05 +00:00

Dice rolling plugin with many options.

Forked from https://github.com/wRAR/supybot-plugin-Dicebot

Install dependencies: python3 -m pip install -r requirements.txt

Description

Dice plugin contains the commands which simulate rolling of dice. Though core supybot plugin Games contain 'dice' command, it is very simple and is not sufficient for advanced uses, such as online playing of tabletop role-playing games using IRC. The most basic feature of any dice plugin is, of course, rolling of one or several identical dice and showing the results. That is what core 'dice' command can do. It takes an expression such as 3d6 and returns a series of numbers - results of rolling each (of 3) die (6-sided): '2, 4, and 4'. This may be sufficient for some games, but usually you need more. Here is what this plugin can do for you.

Features

  1. Sum of dice rolled. Expression form is just '2d6', plugin returns the sum of dice values as one number.
  2. Sum of several different dice and some fixed numbers. Expression: '2d6+3d8-2+10'. After summing up dice results the specified number is added (or subtracted) to the sum.
  3. Separate results of several identical rolls which use previously described form. This is written as '3#1d20+7' and yields 3 numbers, each meaning the result of rolling 1d20+7 as described above.
  4. Possibility to omit leading 1 as dice count and use just 'd6' or '3#d20'.
  5. Two (three?) distinct modes of operation: roll command and autorolling (can be enabled per-channel and for private messages, see configuration below). roll command accepts just one expression and shows its result (if the expression is valid). Autorolling means that bot automatically rolls and displays all recognized expressions it sees (be it on the channel or in the query). Autorolling is much more convenient during online play, but may be confusing during normal talk, so it can be enabled only when it is needed.
  6. To distinguish between different rolls, all results are prefixed with requesting user's nick and requested expression.
  7. If you use several expressions in one message, bot will roll all of them and return all the results in one reply, separated with semicolon.
  8. Shadowrun 4ed support, see included Shadowrun.txt; 7th Sea RnK support, see 7th Sea.txt; Dark Heresy/Rogue Trader/Deathwatch support, see DH.txt.
  9. Concerning extensibility, you just need to add a regex for your expression and a function which parses that expression and returns a string which will be displayed.
  10. Also includes basic card deck simulator, see below.

Configuration

autoRoll (per-channel): whether to roll all expressions seen on the channel autoRollInPrivate (global): whether to roll expressions in the queries Both settings are off by default, so that bot replies only to explicit !roll.

Deck

Bot has a 54-card deck which it can shuffle (!shuffle command) and from which you can draw (!draw or !deal command, with optional number argument if you want to draw several cards). Drawn card is removed from the deck, but shuffle restores full deck. If the last card is drawn, the deck is automatically shuffled before drawing next card.

Thanks

Ur-DnD roleplaying community (#dnd @ RusNet) for games, talking and fun, and personally Zuzuzu for describing basic Dice requirements, which led to writing the first version of this plugin in August 2007.

Tests

Run tests: supybot-test Dice && pytest