Files
dungeon-sheets/README.rst
T
2020-05-14 11:52:32 -05:00

120 lines
4.0 KiB
ReStructuredText

================
Dungeon Sheets
================
A tool to create character sheets for Dungeons and Dragons.
.. image:: https://travis-ci.com/canismarko/dungeon-sheets.svg?branch=master
:target: https://travis-ci.com/canismarko/dungeon-sheets
:alt: Build status
.. image:: https://coveralls.io/repos/github/canismarko/dungeon-sheets/badge.svg
:target: https://coveralls.io/github/canismarko/dungeon-sheets
:alt: Test coverage status
.. image:: https://readthedocs.org/projects/dungeon-sheets/badge/?version=latest
:target: https://dungeon-sheets.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
Installation
============
.. code:: bash
$ pip install dungeonsheets
.. note::
Dungeon sheets requires **at least python 3.6**. This is mostly due
to the liberal use of f-strings_. If you want to use it with
previous versions of python 3, you'll probably have to replace all
the f-strings with the older ``.format()`` method or string
interpolation.
.. _f-strings: https://www.python.org/dev/peps/pep-0498/
Optional External dependencies
==============================
* You may use **pdftk** to generate the sheets in PDF format.
* You will need **pdflatex** installed to generate the PDF spell pages (optional).
If **pdftk** is available, it will be used for pdf generation. If not,
a fallback python library (pdfrw) will be used. This has some
limitations:
- Produces v1.3 PDF files
- Not able to flatten PDF forms
- Will produce separate character-sheets, spell-lists and spell-books.
Different linux distributions have different names for packages. While
pdftk is available in Debian and derivatives as **pdftk**, the package
is not available in some RPM distributions, such as Fedora and CentOS.
One alternative would be to build your PC sheets using docker.
If the ``pdflatex`` command is available on your system, spellcasters
will include a spellbook with descriptions of each spell known. If
not, then this feature will be skipped.
Usage
=====
Each character is described by a python file, which gives many
attributes associated with the character. See examples_ for more
information about the character descriptions.
.. _examples: https://github.com/bacook17/dungeon-sheets/tree/master/examples
The PDF's can then be generated using the ``makesheets`` command.
.. code:: bash
$ cd examples
$ makesheets
dungeon-sheets contains definitions for standard weapons and spells,
so attack bonuses and damage can be calculated automatically.
If you have to excellent *dndbook* LaTeX template, consider using the
``-F`` option to include this template for rendering spellbooks, druid
wild forms and features pages:
https://github.com/rpgtex/DND-5e-LaTeX-Template
If you'd like a **step-by-step walkthrough** for creating a new
character, just run ``create-character`` from a command line and a
helpful menu system will take care of the basics for you.
Content Descriptions
====================
The descriptions of content elements (e.g. classes, spells, etc.) are
included in docstrings. The descriptions should ideally conform to
reStructured text. This allows certain formatting elements to be
properly parsed and rendered into LaTeX::
class Scrying(Spell):
"""You can see and hear a particular creature you choose that is on
the same plane of existence as you. The target must make a W isdom
saving throw, which is modified by how well you know the target
and the sort of physical connection you have to it. If a target
knows you're casting this spell, it can fail the saving throw
voluntarily if it wants to be observed.
Knowledge - Save Modifier
-------------------------
- Secondhand (you have heard of the target) - +5
- Firsthand (you have met the target) - +0
- Familiar (you know the target well) - -5
Connection - Save Modifier
--------------------------
- Likeness or picture - -2
- Possession or garment - -4
- Body part, lock of hair, bit of nail, or the like - -10
"""
name = "Scrying"
level = 5
...