bcdice v4.7.1
bcdice-js
BCDice ported package for TypeScript/JavaScript by Opal.
Installation
$ npm install --save bcdiceUsage
JavaScript (CommonJS)
const { DynamicLoader, Version } = require('bcdice');
async function main() {
console.log('BCDice Version:', Version);
const loader = new DynamicLoader();
console.log(loader.listAvailableGameSystems().map(info => info.id));
const GameSystem = await loader.dynamicLoad('Cthulhu7th');
console.log(GameSystem.NAME);
console.log(GameSystem.HELP_MESSAGE);
const result = GameSystem.eval('CC<=54');
console.log(result && result.text);
}
main();TypeScript
import { DynamicLoader, Version } from 'bcdice';
async function main(): Promise<void> {
console.log('BCDice Version:', Version);
const loader = new DynamicLoader();
console.log(loader.listAvailableGameSystems().map(info => info.id));
const GameSystem = await loader.dynamicLoad('Cthulhu7th');
console.log(GameSystem.NAME);
console.log(GameSystem.HELP_MESSAGE);
const result = GameSystem.eval('CC<=54');
console.log(result?.text);
}
main();UserDefinedDiceTable
JavaScript (CommonJS)
const { UserDefinedDiceTable } = require('bcdice');
const table = new UserDefinedDiceTable(`テスト表
1D6
1:いち
2:に
3:さん
4:し
5:ご
6:ろく`);
const result = table.roll();
console.log(result && result.text);TypeScript
import { UserDefinedDiceTable } from 'bcdice';
const table = new UserDefinedDiceTable(`テスト表
1D6
1:いち
2:に
3:さん
4:し
5:ご
6:ろく`);
console.log(table.roll()?.text);Loaders
StaticLoader:import StaticLoader from 'bcdice/lib/loader/static_loader';- Load all GameSystems on startup.
DynamicLoader:import { DynamicLoader } from 'bcdice';
or extend Loader (import Loader from 'bcdice/lib/loader/loader') and make your custom loader.
Internal BCDice Versions
Since v2.x, you can get the version of internal BCDice by importing Version from 'bcdice'.
| bcdice-js | BCDice |
|---|---|
| 3.1.0 | Ver3.1.1 |
| 3.0.0 | Ver3.0.0 |
| 2.0.0 | Ver3.0.0 |
| 1.x.x | Ver2.xx.xx |
Development
- Node.js >= v14
- Ruby >= 2.7
$ git clone https://github.com/bcdice/bcdice-js.git
$ cd bcdice-js
$ git submodule update --init
$ bundle install
$ npm install$ npm run build
$ npm testMigration from 2.x to 3.x
Loader.dynamicImport(className: string) now accepts a className instead of a path. Custom loaders need to search for GameSystem from known path. See also DynamicLoader.
11 months ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago