Modularize Custom Editions
- Dominant language
- Java
- Stars
- 2.7k
- Forks
- 1.1k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 163
Description
Right now, custom editions are structured as `custom/cards/SET/[card script text files]` and `custom/editions/editionFile.txt`. (I think there's also `custom/tokens/SET/...`?) The only way to add images that I'm aware of is manually adding them to Forge's image cache. This in particular makes installing and uninstalling custom sets cumbersome (and on Android, impossible without a powerful file manager).
We could reorganize this, so that each custom edition has a singular directory. `custom/cardSets/SET/` could act as a root folder for a single edition, containing:
* `/edition.txt` - Main edition file describing prints and metadata.
* `/cardScripts/` and `/tokenScripts/` - Folders containing all card and token scripts for the cards in this set.
* `/cardImages/` and `/tokenImages/` - For image files, stored by name and/or collector number. We might make the `.fullborder` clause of the names optional while doing this. Should probably figure this out once ImageKeys are done being revised.
* `/TypeLists.txt`, `/blocks.txt`, /cubes/[deck lists]` - Various other things that might be added to Forge's default data and resources from this edition. We might even support edition directories that don't contain cards or edition data.
That would make it simpler to install them, but there's room for other improvements that build on top of this structure, such as:
* Allow both `/SET/` and `/SET.zip` to function similarly, so you can either drop the zip file in the directory and be done with it, or leave them as folders so they're easier to edit.
* Wrap the custom cards and images used by adventure and quest into modules that behave similarly.
* Add an in-game menu for enabling and disabling custom sets.
* Create a script structure for defining custom keywords or state-based actions that unwrap as abilities.
* Split Un-cards and Unknown Event cards into custom editions? This would let users disable them and keep their creature types from appearing in game. Potential complications though are Steamflogger Boss and Discord, Lord of Disharmony. The former is a legal card in an un-set, the latter is an un-card in a mostly legal set.
* Split Mystery Booster playtest cards into a custom edition? Similar problem if we want to try and keep the rest of the Mystery Booster sets intact.
* On Android, we could add an option to install a set by picking a zip file with the file chooser. We could just copy it to Forge's directory.
Contributor guide
Assessment
This issue has not been assessed yet.