Coder Social home page Coder Social logo

coop's Introduction

Coop - Adventurers League Character Log Generator

"Reality is frequently inaccurate." -- Douglas Adams

Coop is a little tool that uses simple DSL-specified Dungeons and Dragons adventures to generate a log of pretend gameplay to support an Adventurers League character.

It includes SRD content, but nothing else. You'll have to supply your own copy of WoTC material.

Installation

$> gem install coop_al

Usage

$> coop --help
coop [options] resource [resource...]
--path <path1>[,<path2>,...] Specify path to follow
--path-file <filename>       Specify paths in a file, one per line
--no-loot                    Do not report loot
--no-xp                      Do not report accumulated XP
--no-paths                   Do not report available paths
--party-size n               Total XP and treasure is divided by n [6]
--encounter-count n          Encounters per session [10]
--end-date YYYY-MM-DD        Most recent session [today]
--session-frequency n        Sessions every n days [7]
--blackout-dates YYYY-MM-DD[,YYYY-MM-DD,...]
--skip-frequency n           Chance of skipping week is 1 in n [never]
--srd                        Use included SRD file for monsters
--trace                      Print encounter details
--help                       Print this help

Customization

Check out the examples provided.

Bestiary

Create your own bestiary by providing a resource file in the form:

bestiary do
  add :scary_monster, :cr1_2
  add :scarier_monster, :cr17
end

Adventures

Create your own adventures by providing a resource file in the form:

adventure :shortname, 'Adventure Name' do
  entry :chapter_1
  chapter :chapter_1, 'Chapter 1. Surrounding Area' do
    5.times do
      random 'Random Encounter' do
        f(1..2) { monster :scary_monster }
        f(3..20) { monsters '3d6', :scarier_monster }
      end
    end
    encounter 'Some old weak guy' do
      npc :cr0
      treasure 2000.gp + 400.pp
      treasure 1000.gp, 'diamond'
      item 'Vorpal sword'
    end
    encounter 'Bag of XP' do
      xp 500
    end
    link_to :chapter_2
  end
  chapter :chapter_2, 'Chapter 2. The Caves' do
    ...
    link_to_downtime
  end
end

Development

Coop is written in Ruby, and requires the Tablescript gem.

Tests

Such as they are...

$> rake spec

Coverage provided by simplecov.

Rubocop

$> rake rubocop

coop's People

Contributors

jamiehale avatar

Watchers

 avatar James Cloos avatar

coop's Issues

Format for external consumption

First, determine what needs to be output where. Right now it just barfs everything into stdout.

Information to be dumped includes:

  1. Trace info - which encounters were run and what their effects were
  2. Summary - how much XP and loot were earned
  3. Session log - the breakdown of sessions

Formats include:

  1. Standard out - probably for summary and trace
  2. YML/JSON - ? some structured format to be used by another formatter
  3. CSV - ? for spreadsheet import

Probably default to just dumping summary to stdout. Leave --trace to also dump to stdout before the summary. Probably add something like --session-log-file filename and --session-log-format <json|yml|csv>.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.