Useful extensions for the Dialog domain-specific Interactive Fiction language. These are mostly code-oriented, rather than player-facing, and can be quietly dropped in behind the scenes to simplify your code. Unit tests are provided for all of them, in the corresponding file ending in -tests.dg; running make test will run them all.
At the moment, the repository is organized as a single flat directory with individual extension files. As more contributions come from more authors, we might need to reorganize this, either on a directory-per-author or directory-per-extension basis. If you have thoughts about how best to organize this repository, please comment on issue #4.
time.dg -- Useful utilities for handling the date and time of day.
utils.dg -- Grab bag of useful methods for arithmetic and list handling.
dice.dg -- UNDO-safe random number generator, based around fair rolls with good randomness stored in a table.
dice-lite.dg -- Version of dice.dg that just leans on the built-in (random from $ to $ into $) predicate.
d6.dg -- Simplified version of dice.dg for games that only need six-sided dice.
d6-lite.dg -- Version of d6.dg that just leans on the built-in (random from $ to $ into $) predicate.
grid.dg -- Implement grid movement in a large open space.
bearing.dg -- Implement 360 degree headings and bearings, and calculate movement to any compass heading.
unit.dg -- Standard Dialog unit testing framework. Get this from the Dialog source distribution for the most up-to-date version.
unit-0m03.dg -- Version of unit.dg compatible with Dialog 0m/03 and 1a/01.
stdlib.dg -- Dialog standard library. Get this from the Dialog source distribution for the version that matches the compiler that you're using.
Makefile -- Run make to run the unit tests.
This is a library of source code. Simply include the files in your own projects, and you're done. You can run the unit tests with make, if desired.