Discord Bot [0.0.1] Event System

Pertains to the Discord Bot
Recently, we began working on re-creating a long lost event system that had its roots inside of the DropTracker's functionality.

These events are fully-automated, with a dedicated Discord bot to handle synchronization and updating; using WiseOldMan and our own tracking capabilities to accurately manage task completions and assignments.

For the time being, I'm simply working on Bingo events.
A large amount of the requirements are completed for this to be a reality:
  • A Bingo Board class to handle generation and modification of image representations of boards
  • A verbose task system that is able to handle nearly any possible type:
    • Item-based tasks, which can be configured to:
      • require any one item, or any one item from a list of items
      • require all items in a list of items
      • require a complete set out of a list of sets of items
    • Experience-based tasks
    • KC-based tasks (from a specific boss, list of bosses, or overall)
    • Loot-based tasks (from a specific boss, list of bosses, or overall)
    • EHB-based tasks
    • EHP-based tasks
    • Combat achievement-based tasks
    • Personal Best-based tasks (defeat x within y)
  • A TaskFactory class to help with creating BaseTasks (will be able to be used inside any event), and for custom tasks to be created for individual events, with the ability to import BaseTasks.
  • All of the required database models to handle an event (Participants, teams, tasks, tasktypes, tracking data for ehp/ehb/kc related tasks with WOM integration, etc)
An example of the generated boards can be seen below.
The board generation has support for accepting custom background images for tiles and for marking completion.
1748306594209.png
1748306600909.png

This is all that I've done for now in regards to the event system--you can as always check out our source code over on GitHub.
 
Worked on creating the ability to design your board with a friendly UI:

bingo-creation.gif



And to create new tasks simply on the same page.