@swrpg-online/dice
v1.2.2
Published
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.
Downloads
537
Maintainers
Readme
dice
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!