Skip to content

Latest commit

 

History

History
136 lines (107 loc) · 3.12 KB

README.md

File metadata and controls

136 lines (107 loc) · 3.12 KB

dice

npm version build codecov semantic-release: angular

A TypeScript library that creates dice rolls using the narrative dice system for the Star Wars Roleplaying Game by Fantasy Flight Games and Edge Studio.

Features

  • Complete narrative dice system implementation
  • Detailed roll breakdown for each die
  • Action hints to suggest possible uses for advantages, triumphs, etc.
  • Roll results include:
    • Successes / Failures
    • Advantages / Threats
    • Triumphs / Despairs
    • Light / Dark Side Points (Force dice)
  • Comprehensive Test Coverage
  • The safety of TypeScript
  • CLI Support

Installation

As a CLI Tool

To use the dice roller from the command line:

npm i -g @swrpg-online/dice

As a project dependency

npm i @swrpg-online/dice

CLI Usage

swrpg-dice <dice-notation> [options]

Example:

swrpg-dice 2y 1g 1p 1b 1sb --hints

Output:

1 Success(es), 4 Advantage(s), 1 Threat(s)

Possible actions:
 • 1 Advantage or 1 Triumph - Recover one strain (may be applied more than once).
 • 1 Advantage or 1 Triumph - Add a boost die to the next allied active character's check.
 • 1 Advantage or 1 Triumph - Notice a single important point in the ongoing conflict, such as the location of a blast door's control panel or
 ...

Dice Options:

  • y/pro = Yellow / Proficiency
  • g/a = Green / Ability
  • b/boo = Blue / Boost
  • r/c = Red / Challenge
  • p/diff = Purple / Difficulty
  • blk/k/sb/s = Black / Setback
  • w/f = White / Force

Programmatic Usage

import { roll, DicePool } from '@swrpg-online/dice';

const pool: DicePool = {
    abilityDice: 2,
    proficiencyDice: 1,
    difficultyDice: 1,
    challengeDice: 1
};

const result = roll(pool);

console.log(result.results);
console.log(result.summary);

=> {
  "results": [
    {
      "type": "ability",
      "roll": 5,
      "result": {
        "successes": 0,
        "failures": 0,
        "advantages": 1,
        "threats": 0,
        "triumphs": 0,
        "despair": 0
      }
    },
    {
      "type": "proficiency",
      "roll": 10,
      "result": {
        "successes": 0,
        "failures": 0,
        "advantages": 2,
        "threats": 0,
        "triumphs": 0,
        "despair": 0
      }
    },
    ...
  ],
  "summary": {
    "successes": 0,
    "failures": 0,
    "advantages": 3,
    "threats": 2,
    "triumphs": 0,
    "despair": 0
  }
}

License

This project is licensed under the MIT License.

Contribution

This is a new library for a game with not a lot of open source tooling available - feedback and pull requests welcome!