dawnbrandbots / ydeck Goto Github PK
View Code? Open in Web Editor NEWA Node module for parsing, classifying and validating Yu-Gi-Oh! decklists
License: GNU General Public License v3.0
A Node module for parsing, classifying and validating Yu-Gi-Oh! decklists
License: GNU General Public License v3.0
The module needs to be able to classify a deck in terms of what archetype it is. ygopro-data provides setcodes, but this has many false positives and false negatives. MBT has offered to provide a list of relevant criteria, but I assume that will only be relevant to the current metagame. Depending on future public presence, could collaborate with community on keeping such a list of criteria updated. Some themes will presumably be identified by the presence of various key cards, while others will be defined by a certain density of setcodes - the density will likely depend on the archetype.
Recording rambly self-notes from Discord
OK, I think I need to more thoroughly plan how I'm going to go about these legality checks
I'll leave aside histlander for now, still
In fact while I'll try to make it extensible, the most immediately necessary use is only one format
There are at least three different axes I can think of to validate a deck on
Deck size - in a master duel that's 40-60 main, 0-15 extra, 0-15 side. To allow e.g. speed that shouldn't be hardcoded
Cardpool - for TCG, that means checking no OCG or unreleased cards. This is something that should be highly configurable because tournaments will often have the purpose of trying out a new product that isn't quite official yet, or Ignis is slightly behind on publishing its release
Banlist - this is also something tournaments often wish to customise
It needs to not just check that the restraints are met, but enumerate any and all deviances from those restraints
Length is fairly simple to both check and report
Cardpool can rely on the scope field in ygopro-data for now, with the option to include a list of cards that should override scope and be considered legal/illegal as appropriate
ygopro-data also technically provides banlist data iirc but it's awkward. Again allow users to provide overrides
The module will need to provide a variety of information for both display and data analysis. In addition to legality status (#2) and archetype classification (#3), this issue will document various things I think the module should be able to show, as I think of them
Errors should be distinguished by types and not just message strings
Involves validating that the deck meets the union of 2 temporally-consecutive card pools, including correlated banlists, and classifying deck as "classic" or "modern" and with a pair of years based on which card pools it meets. Said card pools are based on when a card was released, so information is unlikely to be obtainable from ygo-data. Potentially YGOProDeck, or collaborate with format admins to keep a bespoke data source up to date.
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.