Demilich, the MTG skeleton wizard
Project description
Demilich - the MTG skeleton wizard
A tool for quickly scaffolding a custom MTG set.
For designers of custom Magic: the Gathering sets, the designers of canon Magic suggest starting from a design skeleton. This is a set of "slots" which have some standard creatures, keywords, and spells to make the limited game work, at least at a base level. I've found that the act of mechanically filling out a design skeleton (15 commons per color, 14 uncommons per color, plus artifacts and signposts) is draining. In fact, I've never successfully completed a design skeleton by hand.
Enter demilich.
Demilich encodes the suggested distributions of things and generates a randomized set of initial slots.
This takes the drudgery and thinking out of the process and makes it a simple, mechanical starting point.
From there, you can start assigning your own mechanics and creative to your new set!
Installation
The fastest way to simply generate a basic skeleton is to run demilich using pipx.
- Install
pipx - Run
demilich:pipx run demilich play-booster > skeleton.csv
If you intend to use more of its features (like generating a skeleton programmatically), you can also install the package.
# first make a virtualenv however you normally do
% python -m venv env
% . env/bin/activate
# then install demilich
% pip install demilich
Basic use
% demilich play-booster > skeleton.csv
Then open skeleton.csv in the editor of your choice.
Custom skeleton
You can use demilich with your custom skeleton definition.
I recommend you copy pb2024.toml to use as a starting point.
Once you have your my-custom-skeleton.toml ready to go, run:
% demilich custom-skeleton my-custom-skeleton.toml
Output formats
By default, demilich generates a CSV.
You can ask for a pretty-printed table instead with the --format option.
% demilich play-booster --format=table
# or
% demilich custom-skeleton my-custom-skeleton.toml --format=table
Suppressing or including big columns
CSV mode includes all columns by default.
Table mode suppresses the "instruction" column by default.
You can bring it back with --include-instruction.
(You'll want a pretty wide terminal for this to make sense.)
% demilich play-booster --format=table --include-instruction
You can additionally suppress card text with --no-include-text:
% demilich play-booster --format=table --no-include-text
Programmatically building a skeleton
The API for SkeletonGenerator is documented in docstrings so you can generate skeletons programmatically.
See the examples in examples/ for ideas on how to do it.
Each SkeletonGenerator is only responsible for a single section of a full skeleton.
It keeps a fixed rarity and frame code, which simplifies the implementation quite a bit.
If you need something much fancier, like redistribution keywords that didn't make it into one rarity into another rarity, you can probably achieve that using the programmatic interface.
Fan content policy
demilich is unofficial Fan Content permitted under the Fan Content Policy.
Not approved/endorsed by Wizards.
Portions of the materials used are property of Wizards of the Coast.
©Wizards of the Coast LLC.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file demilich-1.1.0.tar.gz.
File metadata
- Download URL: demilich-1.1.0.tar.gz
- Upload date:
- Size: 20.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/24.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e07567a60b4f40d52a15670bf904605161efd2e4e1079446b9669029d0386a0e
|
|
| MD5 |
8ab0cfa29ce40c2de5b7af2454d8df6f
|
|
| BLAKE2b-256 |
7b5f73c4d3999097ec6cc8a58c0f97a38e8a76cc32d475dc113040c4dc7c76b8
|
File details
Details for the file demilich-1.1.0-py3-none-any.whl.
File metadata
- Download URL: demilich-1.1.0-py3-none-any.whl
- Upload date:
- Size: 22.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/24.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac1f8479bba27e05fb3f17e25645cb379ea72624912e19d27c0c4d0e14f84f0e
|
|
| MD5 |
84e0b4436c15f02d0cee2badda8402bc
|
|
| BLAKE2b-256 |
3c3b6cea15540a22d0e95e863675ccada3b82dfb7c3122a36836f97dd3cd7df0
|