4.6.0 • Published 3 months ago

bcdice v4.6.0

Weekly downloads
62
License
BSD-3-Clause
Repository
github
Last release
3 months ago

bcdice-js

npm CI Snyk Vulnerabilities for npm package GitHub issues GitHub forks GitHub stars GitHub license Discord

BCDice ported package for TypeScript/JavaScript by Opal.

Installation

$ npm install --save bcdice

Usage

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-jsBCDice
3.1.0Ver3.1.1
3.0.0Ver3.0.0
2.0.0Ver3.0.0
1.x.xVer2.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 test

Migration 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.

4.6.0

3 months ago

4.5.0

5 months ago

4.4.0

9 months ago

4.3.0

10 months ago

4.1.0

1 year ago

4.2.0

1 year ago

4.0.0

2 years ago

4.0.3

2 years ago

3.6.0

2 years ago

3.5.1

2 years ago

3.5.0

2 years ago

3.4.0

3 years ago

3.3.0

3 years ago

3.2.0

3 years ago

3.1.2

3 years ago

3.1.1

3 years ago

3.1.0

3 years ago

3.0.0

3 years ago

3.0.0-beta.2

3 years ago

3.0.0-beta.1

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

2.0.0-rc.1

3 years ago

2.0.0-alpha.2

3 years ago

1.6.0

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.0

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.0.0

4 years ago

1.0.0-rc.1

5 years ago

1.0.0-beta-1

5 years ago

1.0.0-beta-0

5 years ago