Skip to content

Latest commit

 

History

History
42 lines (24 loc) · 1.62 KB

README.md

File metadata and controls

42 lines (24 loc) · 1.62 KB

anathema

Dice roller for tabletop games with some specific leanings towards Pathfinder 2e.

anathema

Make sure you have RocksDB installed wherever you plan to run this and isntall everything else from requirements.txt. Set the DISCORD_BOT_TOKEN with your bot's access token and run from the entrypoint at src/anathema.py

Maybe I should make a copywrite disclaimer about Sun Tzu's The Art of War but I imagine it's in public domain by now? If you are a lawyer, feel free to open an issue I suppose.

Generally follows the same syntax as Dice Maiden

!roll [DIE_EXPR|MOD_EXPR] [+|-] DIE_EXPR|MOD_EXPR] ... [XFORM_EXPR] ! <reason> Where: DIE_EXPR is XdX, e.g. 1d20,2d6

MOD_EXPR is X, e.g. 1, 8

XFORM_EXPR are currently:

khX: "Keep highest X", will take the top X rolls from each DIE_EXPR result

klX: "Keep lowest X", will take the bottom X rolls from each DIE_EXPR result

reason can be any text which explains the result in the response

Full example: !roll 2d6 + 1d8 +4 -1 kh1 ! attack vs goblin AC

Additionally, some simple "macros" are supported with the syntax:

!set-command <command_name> :: <command_expression>

Where the command expression is anything that could be valid to another handler.

Optionally you can add a {} to allow some text to be injected into the command when you call it.

For example: !set-command attack :: !roll 1d20 + 8 {} ! attack

and then

!attack -2 , which will expand to: !set-command attack :: !roll 1d20 + 8 -2 ! attack