slotify.js
TypeScript icon, indicating that this package has built-in type declarations

1.2.16 • Public • Published

slotify.js

npm version Build Status

A server-side video slot game logic framework in JavaScript.

npm install slotify.js

slotify4j - Java version.

Usage

Game Session

Simple casino game logic.

import {GameSession, GameSessionConfig} from "slotify.js";

const config = new GameSessionConfig();
config.availableBets = [10, 20, 30];
config.creditsAmount = 5000;

const session = new GameSession(config);
session.getAvailableBets(); //[10, 20, 30]
session.getBet(); //10
session.getCreditsAmount(); //5000

session.setBet(20);
session.getBet(); //20

session.play();
session.getCreditsAmount(); //4980

Video slot game logic.

import {ReelGameSession, ReelGameSessionConfig} from "slotify.js";

const config = new ReelGameSessionConfig();
const session = new ReelGameSession(config, new ReelGameSessionReelsController(config), new ReelGameSessionWinCalculator(config));

//specified at config
session.getPaytable(); //paytable
session.getReelsItemsNumber(); //number of reels (columns)
session.getReelsNumber(); //number of items on reels (rows)
session.getReelsItemsSequences(); //distributions of symbols on reels (probabilities)

session.play();

session.getReelsItems(); //combination of symbols on reels after play
session.getWinningAmount(); //if there where a winning combination returns total winning amount
session.getWinningLines(); //returns winning lines data
session.getWinningScatters(); //returns winning scatters data

Simulation

Simple way to run a lot of game rounds and calculate Return To Player percentage.

const sessionConfig = new ReelGameSessionConfig();
sessionConfig.creditsAmount = Infinity;
sessionConfig.reelsItemsSequences = [
    ['J', '9', 'Q', '10', 'A', 'S', 'K'],
    ['K', 'S', '10', 'A', '9', 'Q', 'J'],
    ['J', 'Q', '10', '9', 'S', 'A', 'K'],
    ['Q', '10', '9', 'S', 'K', 'A', 'J'],
    ['Q', 'A', 'J', '10', '9', 'S', 'K']
];
const reelsController = new ReelGameSessionReelsController(sessionConfig);
const winningCalculator = new ReelGameSessionWinCalculator(sessionConfig);
const session = new ReelGameSession(sessionConfig, reelsController, winningCalculator);
const simulationConfig = {
    numberOfRounds: 10000
};
const simulation = new GameSessionSimulation(session, simulationConfig);


simulation.beforePlayCallback = () => {
    console.log("Before play");
};
simulation.afterPlayCallback = () => {
    console.log("After play");
};
simulation.onFinishedCallback = () => {
    console.log("Simulation finished");
};

simulation.run();  //10000 rounds will be played

simulation.getRtp(); //returns rtp for current session (about 50-60% with symbols distributions specified earlier at session config) 

Package Sidebar

Install

npm i slotify.js

Weekly Downloads

4

Version

1.2.16

License

ISC

Unpacked Size

204 kB

Total Files

115

Last publish

Collaborators

  • sta-ger