DeckLock part 4: Flesh and Blood
and other updates
Flesh and Blood has been gaining a lot of traction as a Trading Card Game, and I recently picked up two preconstructed decks to check out the game. It also would be great to add this new game to DeckLock as it seem interesting, and I’m pretty sure I’ll pick up some more cards sooner or later.
For those unfamiliar with DeckLock, this is a framework build upon Pelican to generate an overview of decks you own across different games as a simple static website (check out the demo). This is covered in previous posts (part 1, part 2 and part 3) and currently supports Gwent, KeyForge and Magic: the Gathering. Given that Flesh and Blood is growing quickly (and I picked up a few precon decks myself) it seems an update is due to add support for this new game.
On top off adding support for FaB, there were numerous small additions to the framework. As these don’t justify a post on their own I’ll highlight them at the end.
Adding Flesh and Blood
Similarly to Magic: the Gathering, Flesh and Blood is a TCG with physical cards, so adding decks will be done similarly. There aren’t too many resources on FaB yet, fortunately FaBDB.net allows you to create decklists online, and has an API where card data can be obtained. The code is very similar to part 2 albeit structured better, as it can be found on GitHub there is little need to discuss it here in depth.
The format for decklists is pretty straightforward in case you want to do this by hand :
Deck build - via https://fabdb.net :
Prism Blitz Precon
Class: Illusionist
Hero: Prism
Weapons: Iris of Reality
Equipment: Dream Weavers, Halo of Illumination, Heartened Cross Strap, Spell Fray Leggings
(2) Herald of Protection (red)
(2) Herald of Ravages (red)
(2) Herald of Rebirth (red)
(2) Herald of Tenacity (red)
(2) Illuminate (red)
(1) Phantasmify (red)
(1) Prismatic Shield (red)
(2) Seek Enlightenment (red)
(2) Wartune Herald (red)
(2) Enigma Chimera (yellow)
(1) Herald of Judgment
(1) Merciful Retribution
(1) Ode to Wrath
(2) Rising Solartide (yellow)
(2) Enigma Chimera (blue)
(2) Herald of Protection (blue)
(2) Herald of Ravages (blue)
(2) Herald of Rebirth (blue)
(2) Herald of Tenacity (blue)
(2) Illuminate (blue)
(2) Spears of Surreality (blue)
(2) Wartune Herald (blue)
(1) The Librarian
See the full deck at: https://fabdb.net/decks/GkNKXvRA/
These will need to be saved as a .fab
file in the content
folder and the new FaBReader
class will
work its magic to add this to the website. While working with Pelican gives you a lot of flexibility, it also has a
steep learning curve, and I personally find it hard to structure the code well. Though while working on this, I noticed
when creating Pelican plugins it is important to keep functions simple with a single clear task and separate concerns.
This is in general solid advice when coding! I also noticed I did a poor job on this with other games …
so some refactoring needs to happen some time soon.
Support for FaB is still basic as you can see in the image above, but it will be improved over time!
Other improvements
There were some aesthetic changes throughout DeckLock, with a few charts added here and there. The KeyForge deck pages start to look decent, though for other games there is still some work to be done.
A visual overview of decks, was added for MtG and Fab, for some this might be more interesting way to check out a deck than a written decklist.
An important change is the addition of a GitHub Action to build the website upon committing changes. This makes it easier to make changes (as you can do this directly on GitHub, no need to install anything locally) and should make the framework accessible for those without Python knowledge (though a solid understanding on how GitHub works will still be required). This needs more testing and the way to do this will be outlined in the documentation.
Future updates
Refactoring and documenting code; this has been a learning project and there are a lot of points where the code could, and even should, be improved before moving forward. A lot of code is still at the stage where something was written to make things work, but it isn’t pretty. It should also be relatively easy to set things up now that GitHub actions are used to build the website, even for those that don’t know Python (fork the repo, add content, commit+push and the action will take care of everything else). Though this isn’t outlined in the documentation yet.
The layout needs a lot of work, right now it is mostly default bootstrap with a little custom CSS and apart from a few glyphs here and there very little artwork. This can be improved greatly by someone with better design skills, if you are such a person, see below how you can contribute !
While I don’t want to replicate too much functionality of other websites, a few key graphs that can help to analyze a deck here and there would be nice. Furthermore, some stats across decks could be nice to make the deck overviews more interesting (which cards are popular, how many cards are used, …)
Want to contribute ?
Unfortunately, I don’t have as much time to work on this as I would like, especially creating glyphs and designing pages is particularly time-consuming for me. So if someone is interested in seeing this project grow faster, there is certainly something you could do to help out!
- There are plenty of other TCG out there, and I don’t have the time to include all. Though if you know a little Python and would like this for Yugioh, Pokemon, … , you can probably help to add support for a new game
- If you know your way around logo design there are plenty of glyphs that could be added …
- The layout is very basic, anyone with some web design skills could help improve that
- Documentation can always be expanded
- Simply providing feedback, this helps to figure out where priorities should be
If you wish to contribute, reach out via email, twitter, … (check contact page). Or find the project on GitHub and start coding, I’m happy to accept PRs no matter how small.
Code
All the code for DeckLock is up on GitHub https://github.com/4dcu-be/DeckLock and you can check out the demo with the Decks I have and enjoy playing across the different games.
Legal
Decklock is unofficial Fan Content. The literal and graphical information presented in this project about Flesh and Blood, Gwent, KeyForge and Magic: The Gathering, are copyright of Legend Story Studios, CDPR, Fantasy Flight Games and Wizards of the Coast, LLC, a subsidiary of Hasbro, Inc. respectively. DeckLock and 4DCu.be are not produced by, endorsed by, supported by, or affiliated with any of these entities.
Liked this post ? You can buy me a coffee