Skip to content

DeckofAdventures/TheGame

Repository files navigation

Welcome to Deck of Adventures, The Game

This repository establishes the version history of the Deck of Adventures tabletop roleplaying game. A magical world awaits, where Players come first. In Deck of Adventures, it’s your turn, your choice.

Deck of Adventures is a collaborative roleplaying system, built with an open source ethos. To explore the project, please visit our website, which includes both our Development Guide and Mechanics Guide.

If the above link is expired, please submit an issue.

Developers

Getting Started

  1. Issues. Proposing changes is as easy as opening an issue.
  2. Edits. The development team would welcome a PR that made direct edits to existing docs. Be aware that many lists (e.g., Powers, Bestiary, etc.) are managed as yaml files that can be edited directly and then transformed before or after a PR.
  3. Running Code. The environment.yaml file specifies a Conda environment that will allow you to run all code and generate documentation. mkdocs will allow you to see what the docs site looks like before committing by visiting localhost:8000
conda env create -f environment.yaml # Generate conda environment
conda activate dofa # Activate the environment
python automation/main.py # Generate md docs
bash docs/docs.sh serve # Generate md docs and deploy site

pre-commit is used to run a series of checks before accepting a commit, as outlined in the .pre-commit-config.yaml. To turn on this feature within your activated conda environment, simply run pre-commit install.

N.B.: The markdown lint pre-commit check requires ruby. Feel free to disable this item if you are not familiar with ruby. If used, the following file may be a useful addition to your markdown lint config: ~/.config/mdl/line_length_88.rb

all
exclude_rule 'MD034'
rule 'MD013', :line_length => 88, :tables => false
rule 'MD007', :indent => 2

VS Code Extensions

The following VS Code extensions have been used to support development...

  1. Markdown Lint: Establishes uniformity across docs
  2. Rewrap: Supports hard wrapping docs to 88 characters, which facilitates easier PR review. The default keyboard shortcut is alt+q or option+q.
  3. CSpell: Allows custom dictionaries on spell-check.
  4. Black Formatter: Supports code uniformity.

The following items may also be helpful in a .vscode/settings.json file

{
    "[markdown]" : {
        "editor.rulers": [88],
        "editor.formatOnPaste": true,
        "editor.formatOnSave": false,
        "rewrap.autoWrap.enabled": true,
        "rewrap.wrappingColumn": 88
    },
    "editor.codeActionsOnSave": {
        "source.fixAll.markdownlint":true
    },
    "python.analysis.autoImportCompletions": false,
    "python.formatting.provider": "black",
    "python.defaultInterpreterPath": "/YOUR/LOCAL/PATH",
    "python.formatting.blackArgs": [
        "--line-length=88",
        "--exclude='.env'"
    ],
    "[python]": {
        "editor.formatOnSave": true,
        "editor.defaultFormatter": "ms-python.python"
    },
    "notebook.formatOnSave.enabled":true,
}

Code

In addition to game documentation, this repository is home to automation tools that help us rapidly iterate on designs while keeping user-friendly outputs.

In contributions, please conform to black formatting.