Skip to content

Latest commit

 

History

History
232 lines (176 loc) · 9.35 KB

README.md

File metadata and controls

232 lines (176 loc) · 9.35 KB



YGO-Progression-Bot

Yu-Gi-Oh, Progression Series, Sealed Draft, Pack Opener, Deck Builder, Bot and Web

OverviewContributeUser GuideCreditsLicense

Overview

This Project aims to create a Safe Sealed Draft Yu-Gi-Oh format online experience similar to the Yu-Gi-Oh Progression Series.

The project currently is divided into four applications:

  • YGO-Progression-Bot: The star of the project, this bot lets players open-packs and add cards to their collection while the admin configures from which set are those pack from, the amount of packs each player can open, and the desired ban-list.

  • YGO-Progression-Web: The bulk of the project, built using Vue.js, this site lets players see their collection, build a deck and export it to battle on their preferred Yu-Gi-Oh dueling system.

  • YGO-Progression-Web-Back: The Backbone of the project, this Flask/SQLAlchemy application exposes the card/set/banlist/player database to the site.

  • YGO-Progression-db: The less exciting part of the project, scripts for getting and parsing yu-gi-oh data and adding those to the database for the others applications to use.

Contribute

This project was develop by a single Brazilian CS Student, while I don't expect to live by this project, I do plan to continue improving this for years to come as this is such a passion project and the biggest thing I have ever built.

However, currently the project has monetary limitations, I can't pay for the servers this project runs on, that's why I need your contribution.

With the current server there is a limit of 10000 database lines, that's why some newer sets are missing. (there exists more cards than the database line limit).

You can also contribute by opening issues if you found any problem. Any pull request welcome.

Any questions? You can contact me on this Discord Server.

User Guide

Bot

First, Add the Bot to your server!

https://discord.com/api/oauth2/authorize?client_id=859241519781642251&permissions=59456&scope=bot

As admin, configure which channels the bot has access to, then send the following message:

$new_game

This will register a game in your server.

at any point you can finish the game with following command:

$end_game

Beware, sending end_game deletes all data, including player's collection.

Now every player who wants to participate can join with:

$enter

And players can open packs with the pack command,

$pack 7

Here the 7 is the number of packs to open, passing no number will open only 1 pack.

This can take a while depending on the amount of cached images the bot has, however the bot will respond with "Opening..." to ensure you it's working correctly.

Also, the bot tries to reduce the amount of flooding by grouping maximum 5 packs per image.

After running the command, all shown cards will be automatically be added into the player collection.

However, to open packs, players need to have available packs.

A player can see their available packs and collection url using:

$status

The admin needs to distribute packs to the players, using give_pack and the set code:

$give_pack 24 LOB

Here LOB is the code for Legend of Blue Eyes, and the 24 is the number of packs each player will recieve. Players need to open packs on their own with the pack command. If needed, the command supports an arbitrary number of usernames, so you can give specific packs to specific players:

$give_pack MRD 5 @player1 @player2
Available pack codes
Code Name
LOB Legend of Blue Eyes White Dragon
MRD Metal Raiders
TP1 Tournament Pack: 1st Season
MRL Magic Ruler
TP2 Tournament Pack: 2nd Season
PSV Pharaoh's Servant
TP3 Tournament Pack: 3rd Season
LON Labyrinth of Nightmare
LOD Legacy of Darkness
PGD Pharaonic Guardian
TP4 Tournament Pack 4
MFC Magician's Force
DCR Dark Crisis
IOC Invasion of Chaos
AST Ancient Sanctuary
SOD Soul of the Duelist
TP5 Tournament Pack 5
RDS Rise of Destiny
FET Flaming Eternity
TP6 Tournament Pack 6
TLM The Lost Millennium
CRV Cybernetic Revolution
TP7 Tournament Pack 7
EEN Elemental Energy
DP1 Duelist Pack: Jaden Yuki
DP2 Duelist Pack: Chazz Princeton
SOI Shadow of Infinity
TP8 Tournament Pack 8
EOJ Enemy of Justice
CP01 Champion Pack: Game One
CP02 Champion Pack: Game Two
DP05 Duelist Pack: Aster Phoenix
DP03 Duelist Pack: Jaden Yuki 2
STON Strike of Neos
DP04 Duelist Pack: Zane Truesdale
CP03 Champion Pack: Game Three
FOTB Force of the Breaker
TAEV Tactical Evolution
CP04 Champion Pack: Game Four
GLAS Gladiator's Assault
CP05 Champion Pack: Game Five
PTDN Phantom Darkness
CP06 Champion Pack: Game Six
LODT Light of Destruction
CP07 Champion Pack: Game Seven
TDGS The Duelist Genesis
CSOC Crossroads of Chaos
CP08 Champion Pack: Game Eight
ANPR Ancient Prophecy
SOVR Stardust Overdrive
ABPF Absolute Powerforce
TSHD The Shining Darkness

The command give_card has yet to be implemented.

Any questions? You can contact me on this Discord Server.

Bot Screenshot:

Configs

Configs are keywords to make so the admin can customize the game and implement the format he considers the best, like so:

$config ban_list May 2002

Here, ban_list is the key while May 2002 is the value, this command is setting the server banlist to the May 2002 list.

Supported configs for now:

Key Supported Values Info Default Behavior
ban_list "Month Year" of any official banlist Let admin set the deck builder banlist No ban list
private_pack "False" $pack response is sent on the channel of the command $pack response is sent via DM

Passing an invalid key will do nothing while passing a invalid value will change the key to it's default behavior.

Web

The Site will display only your entire collection, you can't add cards you haven't pull and those won't appear if you search for then.

Also, the cards may take a while to load depending on the size of your collection, don't panic if it looks stuck.

Use the fields and Options to filter/sort, and you can Drag/Drop or Right Click on cards to add/remove then from deck.

That is it, there is no magic here, the ui should be intuitive enough, but you can message me any questions.

Example collection

Any questions? You can contact me on this Discord Server.

Web Screenshot:

Dev Guide

(to do)

Any questions? You can contact me on this Discord Server.

Credits

Credit where credit is due

Special Thanks for all my friends who helped on the development, specially Igor, Joao and Felipe.

Thanks to Cimooo for creating the Progression Series and being the inspiration of this project.

Thanks to YGOPRODECK for the great and well documented api.

license

Released under the MPL 2.0 license.