turqw / longsphinx Goto Github PK
View Code? Open in Web Editor NEWDiscord bot made to help with role management and RPG playing. Name inspired by the Terra Ignota series by Ada Palmer.
Discord bot made to help with role management and RPG playing. Name inspired by the Terra Ignota series by Ada Palmer.
Tim should remember what he's given out to whom.
Do we want the bot to respond to its mentions? Probably just a randomly selected humorous message for now?
It would be nice if the bot could provide color swatches when given a hex set.
Instead of a strict list of roles, we want a map of lists of roles, so that we can do !creature centaur and !class sorceror (and configure those on a per-server basis).
Should also support LMGTFY's duckduckgo option, etc, e.g. !lmgtfy -ddg Sherlock Holmes consulting detective
We'd like to upgrade the dice system to handle more complex inputs: modifiers, sets of independent rolls, advantage, and so on. https://anydice.com/ probably has more features than we need, but it may be something to look at.
Example:
!saveroll 1d20+5, 1d8+3 : rapier
Output:
@walterw9000 , you saved 1d20+5, 1d8+3 as 'rapier'! try it with !roll rapier
!roll rapier
Output:
@walterw9000 rolled 'rapier'!
1d20+5
(12) + 5 = 17
1d8+3
(6) + 3 = 9
Tim could provide reminder messages. This requires some form of data store, and possibly some way to trigger events at specific times.
Currently, certain messages will include phrases like "a angel" or "a elf". We'd ideally like to detect and prevent these. However, also consider the problem of "an unicorn"
Instead of automatically drinking a potion when it's received, Tim should save it to the user's inventory, allowing them to drink it at their leisure.
Before the parser change, results would show each roll as well as the sum. Should change back to that.
As the title says. Will generate weapons, magical and non.
it would be cool to have a way to generate a name that starts with a certain letter or sequence of letters, though the case where it starts with a letter or sequence that doesn't exist in the source data will require some additional processing.
Currently, dice macro names are case sensitive. This should probably change. May complicate the overwrite code a bit; maybe replace overwrite with a delete followed by a save?
We're up to like 5 different markov generators now, should probably add some way to pull in multiple lists as your source data for a generator.
Right now the role selection is seemingly random. This could be improved by checking the user name of the new user.
If it contains the name part of the list that particular role would be assigned. Example ElfGirl join the server, Elf is a role that can be given and it would be given to them.
to improve further a set of keyword could be given for each role. Example Dracula as part of the name would give the vampire role.
Title says it all. Fantasy loot generator. Probably requires a magic item generator.
Within a random roleset there is demand for roles that can be picked but not randomly assigned, either because they're gender specific or could be interpreted as insults.
https://en.wikipedia.org/wiki/Knights_of_the_Round_Table has a list of at least 50 names, plus a list of alternate spellings and more obscure names; with some curation the list could be good.
Tim should be able to respond to direct messages. Ideally, he should be able to handle:
Arguably a subtask of #5
Since it's pulling from a .keys(), it doesn't really keep order. Need to change the structure to an OrderedDict or something.
Should be able to add daily and/or weekly and/or yearly scheduled events.
Some dingus put the modifier inside the rolling loop, so 3d1+3
= 12 (should be 6).
Should be pretty straightforward if I can find a good list.
A user should be able to ask Tim to see everything they've gotten from him.
For instance, certain abilities, colors, and modifiers could be tagged as being Fire-aligned, then a generator could specify that it prefers such things (optionally with how much to weight that requirement) - thus allowing for thematically consistent generations when desired
because otherwise someone can say "!saveroll rapier: 1d8+1" and save a roll called "1d8+1" which attempts to roll a rapier.
Should probably not allow the name to be a valid roll, either.
Currently, the !readme command redirects users to the readme on the GitHub repo. Ideally, we'd prefer to have an in-chat help message and a way to automatically keep it in sync with the appropriate section of the readme, so that the rest of the readme can include documentation on the configuration systems and so on.
For instance, !roll longbow, hunters mark
should roll all of the relevant dice (possibly grouped?)
This could probably be done by moving the "roll a saved roll" logic into the parser, and adding an "identifier" token.
There needs to be a way to view all your saved dive macros. Either !rolls
or !saveroll
with no arguments.
A user should be able to delete an item from their inventory, or clear their whole inventory.
D&D style room generator. Probably will use the loot generator, the summon generator, maybe an NPC generator.
Currently, uncaught exceptions are written to the console, and redirecting them to a file doesn't seem to work. This means that they are lost when the process is run headless.
Either we need to add our own try/catch blocks around the client events, or we need to figure out how to redirect the output properly.
This could be a standard generator or a markov chain per-word system.
Currently, the Realm image is hosted on Discord, we can move that to imgur or something and potentially have more reliability.
It would be nice to be able to change the configuration through chat, particularly around the list of roles or the list of enabled generators for a given server.
Ben (Falros)Today at 10:18
@Tin GM could we get the list to display alphabetised?
The elvish one works great, so we'll try dwarves from Tolkien next.
Currently all persistence of data is done with Shelve; as we've discovered, simply upgrading versions can cause this to completely break. Ideally, we could store everything into e.g. DynamoDB or similar, allowing for thorough fault tolerance.
Sometimes dice rolls output in the wrong order. This may be a function of python dictionaries (which are, in theory, unordered), or of discord's embed functionality. More research necessary.
Feeding the list of gem names into the markov chains might generate coherent, interesting new gem/stone names. Worth a shot.
For instance, a dice macro should not be called '1d20' or even 'd20'. Probably fine to just exclude all numeric digits.
We need a way to create rolesets where individual roles can be requested and removed without affecting other roles within the roleset. e.g. multiclassing, or volunteering for multiple duties.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.