mirror of
https://github.com/Oreolek/gamebookformat.git
synced 2024-06-17 07:30:43 +03:00
141 lines
7.6 KiB
Org Mode
141 lines
7.6 KiB
Org Mode
* TODO [56/79] [70%]
|
|
** DONE Debug output
|
|
** DONE DOT output
|
|
** DONE LaTeX output
|
|
** DONE RTF output
|
|
** DONE HTML output
|
|
** DONE Split out template hanlding into separate class from output
|
|
** DONE Inject Output dependencies
|
|
** DONE Save section-number mapping and reuse automatically
|
|
** DONE Add support for custom document templates.
|
|
Fixed names and/or command-line options.
|
|
** DONE Add section links in LaTeX output.
|
|
** DONE Prettier LaTeX output
|
|
Look at how some existing gamebooks are formatted.
|
|
** DONE Parse wiki-style tags used to mark up sections
|
|
** DONE New text formatting style for section references
|
|
** DONE Inventory pick up items
|
|
** DONE Codewords set
|
|
** DONE Check if has inventory item
|
|
** DONE Check if has codeword
|
|
** DONE Remove item from inventory (forced by instructions)
|
|
** DONE Enable link if not having an item
|
|
** DONE Enable link if not having a codeword
|
|
** DONE Make sure dropped items can not be picked up again
|
|
** DONE Fix problem with map file from other book sometimes crashing formatter
|
|
** DONE Keys from formatted book should be added to map file, not replace it
|
|
** DONE Make inventory and codewords generic
|
|
They are the same, sort of, and it might be good to be able to
|
|
add other similar entities as well, like skills or spells or whatever.
|
|
** DONE Otherwise/else handling for has.
|
|
** DONE Redesign otherwise/else to use xor tag on section reference.
|
|
** DONE Disable all links after finding an auto link (that is enabled).
|
|
** DONE Default templates. (templates/default?)
|
|
** DONE Book option to set title
|
|
** DONE Book option to set author
|
|
** DONE Book option to set max section number to use
|
|
** DONE Quote strings to not break formatting.
|
|
** DONE Include other templates from a template.
|
|
** DONE Template for book introduction (including rules etc)
|
|
Sections with some markup (has number 0?) are added as chapters
|
|
of introduction, otherwise formatted identical to other sections.
|
|
** DONE Inserting images
|
|
** DONE HTML hide intro sections with link to display again
|
|
** DONE Only accept specific characters in section names
|
|
eg [a-z][a-z_0-9]+
|
|
** DONE Random pick of link to follow from a section.
|
|
** DONE Possibility to make predictable random numbers and shuffling for testing
|
|
** DONE Test generate examples and compare to expected output in all formats
|
|
** DONE Unit tests (finally...)
|
|
** DONE Save game (ie player) state
|
|
** DONE Load game (ie player) state
|
|
** DONE Flag to select what tag(s) to include (eg for demo/preview/short...)
|
|
Allow sections with same name as long as only one is included.
|
|
Add book config for what section to use for references to excluded sections
|
|
(eg links to outside of demo version can lead to section explaining that)
|
|
** DONE Counters (life, money, whatever) create and set
|
|
count tag to declare new counter, text in tag is display name
|
|
optional argument sets the starting value of the tag
|
|
display somewhere on page (in HTML output)
|
|
** DONE Counters increase/decrease
|
|
** DONE Counters check
|
|
** DONE Make sure HTML output works with javascript disabled
|
|
and in inferior browsers
|
|
** DONE Make sure counters start at 0 (not 1).
|
|
** DONE Remove the counter names from counter-tags output (and templates).
|
|
** DONE Buy (optionally decrease a counter to add something to a collection)
|
|
buy tag to specify what can be bought, eg [buy item]sword[/buy]
|
|
followed by cost tag to specify what it will cost, eg [cost gold]3[/cost]
|
|
Implemented by adding cost to the old found tag (put cost tag after it).
|
|
Might reconsider and make explicit buy tag for clarity?
|
|
** DONE Add text template used for outputting non-tagged (plain) text.
|
|
** DONE Named references, when that style is wanted (especially for HTML).
|
|
** DONE Seems to be a bug in rtf template, inserting image filename.
|
|
** DONE Javascript tests running in nodejs (no GUI)
|
|
The big scripts in html templates are split out into separate files
|
|
already (script.html and endscript.html). It should be possible to
|
|
test those from nodejs?
|
|
** DONE Make debug output more useful with a stricter format easy to parse.
|
|
Will be taken care of when implementing JSON output.
|
|
** TODO Trade decrease one counter to increase another counter.
|
|
** TODO Pick a specific number of things from those found in a(n intro) section
|
|
Used to pick up one or more of something found, or before starting.
|
|
Create counter and set to how many are allowed to be picked.
|
|
Add buy (and cost) tags for what can be taken.
|
|
Need to make sure it is rendered in a good way (might need more tags).
|
|
Set max of the counter used to 0 and never allow navigation while
|
|
some counter is above its max.
|
|
Without setting the max player can decide to pick up fewer (or none) which
|
|
might of course also be ok at times.
|
|
This will also work for picking eg starting skills.
|
|
** TODO Subtract from counter when following link (implies has at least that)
|
|
This is the cost tag again, when it immediately follows a reference.
|
|
** TODO Add keyword when following link
|
|
This is a new tag that follows a reference similar to a cost tag.
|
|
** TODO Use points to buy values for counters
|
|
Eg to buy starting values for some attributes in introsection.
|
|
Create a counter in that introsection, set to some value.
|
|
Use cost tag following inc tag to set price for increasing a counter.
|
|
Set max for points to 0.
|
|
Do not allow navigation until all points are spent (ie never allows
|
|
following links while a counter is above its max value).
|
|
The same mechanism can of course be used in-game at any section to
|
|
allow the player to buy increases in different counters.
|
|
** TODO Tag to indicate HTML counter not to be visible outside of one section.
|
|
** TODO Combat
|
|
Tag to mark up the link to use to trigger next round.
|
|
Tag to mark up the enemy and its values.
|
|
Fixed set of combat abilities handled by javascript
|
|
(some way to configure ability names, but in that case javascript
|
|
for combat, in a separate file, must be overridden)
|
|
** TODO Some way to insert character sheet in book introduction
|
|
** TODO Some way to insert optional dice at bottom of pages for LaTeX
|
|
** TODO Some way to insert optional random numbers table at end of book
|
|
** TODO Defensive removal of any weird unicode not handled by quoting.
|
|
** TODO Somewhat user-friendly error messages
|
|
** TODO More formatting possibilities in sections
|
|
Look at existing gamebooks to get ideas.
|
|
** TODO Document Gamebook format
|
|
- Basic gamebook (static, nothing about magic needed for dynamic; tutorial)
|
|
- Advanced (more complex layout options, but still static)
|
|
- Dynamic (markup needed to make playable (HTML) version)
|
|
- Standard output formats reference
|
|
- Customization (make new output formats or override existing)
|
|
** TODO HTML with javascript active, do not make new URLs (that break history)
|
|
** TODO Javascript GUI tests running in a browser
|
|
Preferably headless (in nodejs?). Run tests on gamebook html example(s).
|
|
Work on laptop stashed as zombietest (using zombietest obviously).
|
|
** TODO HTML CSS
|
|
** TODO Higher level text-language for Gamebooks
|
|
** TODO BGG forum output (.bgg)
|
|
** TODO Verify gamebook
|
|
** TODO Add json output file containing sections, counters, collections etc.
|
|
This output format down-prioed because requires some changes to handle new-lines.
|
|
All previously supported formats handles new-lines in text without problems, JSON do not.
|
|
New-lines are added in ways that can currently not be affected by quoting functions.
|
|
** TODO Sell (optionally increase a counter to drop something from a collection)
|
|
sell tag to specify what can be bought, eg [sell item]sword[/sell]
|
|
followed by cost tag to specify what it will cost, eg [cost gold]2[/cost]
|
|
Might want to wait with this and add normal drop function first?
|
|
** TODO Dummy and fake sections (handle properly when verifying)
|