GithubHelp home page GithubHelp logo

tk11235 / bcdice-js Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bcdice/bcdice-js

0.0 0.0 0.0 530 KB

BCDice ported package for TypeScript and JavaScript by Opal.

License: BSD 3-Clause "New" or "Revised" License

Shell 1.64% Ruby 25.64% TypeScript 72.73%

bcdice-js's Introduction

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

bcdice-js's People

Contributors

esnya avatar github-actions[bot] avatar ysakasin avatar h-mikisato avatar dependabot[bot] avatar tk11235 avatar blhsrwznrghfzpr avatar ccfolier avatar ochaochaocha3 avatar zeteticl avatar

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.