Giter VIP home page Giter VIP logo

longsphinx's People

Contributors

dependabot[bot] avatar diziara avatar k10forthewin avatar turqw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

longsphinx's Issues

Respond to mentions

Do we want the bot to respond to its mentions? Probably just a randomly selected humorous message for now?

Add multiple roleset support

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).

LMGTFY bot

Should also support LMGTFY's duckduckgo option, etc, e.g. !lmgtfy -ddg Sherlock Holmes consulting detective

Dice upgrades

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.

Dice macros

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

Reminders

Tim could provide reminder messages. This requires some form of data store, and possibly some way to trigger events at specific times.

a(n) elf

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"

Drink potion from inventory

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.

Descriptive dice results

Before the parser change, results would show each roll as well as the sum. Should change back to that.

Constrained name generation

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.

Dice macros are case sensitive

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?

All-mixed-up name generator

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.

"Smart" role selection

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.

Loot generator

Title says it all. Fantasy loot generator. Probably requires a magic item generator.

Choosable but not randomly assigned roles

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.

Direct Message handling

Tim should be able to respond to direct messages. Ideally, he should be able to handle:

  • generators
  • dice rollers

Readme command ordering

Since it's pulling from a .keys(), it doesn't really keep order. Need to change the structure to an OrderedDict or something.

Show inventory

A user should be able to ask Tim to see everything they've gotten from him.

Themed/tag-based generation

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

Validate dice macros

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.

"help" command

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.

comma splice saved rolls

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.

View saved macros

There needs to be a way to view all your saved dive macros. Either !rolls or !saveroll with no arguments.

Delete inventory item

A user should be able to delete an item from their inventory, or clear their whole inventory.

Room generator

D&D style room generator. Probably will use the loot generator, the summon generator, maybe an NPC generator.

Uncaught exceptions are written to the console.

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.

Move image hosting

Currently, the Realm image is hosted on Discord, we can move that to imgur or something and potentially have more reliability.

Change configuration through chat

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.

Fault-tolerant databasing system

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.

Dice roll order

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.

Gem name generator

Feeding the list of gem names into the markov chains might generate coherent, interesting new gem/stone names. Worth a shot.

Non-exclusive rolesets

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.