1.2.16 • Published 10 months ago

slotify.js v1.2.16

Weekly downloads
26
License
ISC
Repository
github
Last release
10 months ago

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) 
2.0.0-dev-31

10 months ago

2.0.0-dev-30

10 months ago

2.0.0-dev-33

10 months ago

2.0.0-dev-32

10 months ago

2.0.0-dev-0

11 months ago

2.0.0-dev-2

11 months ago

2.0.0-dev-1

11 months ago

2.0.0-dev-4

11 months ago

2.0.0-dev-3

11 months ago

2.0.0-dev-6

11 months ago

2.0.0-dev-5

11 months ago

2.0.0-dev-35

10 months ago

2.0.0-dev-8

11 months ago

2.0.0-dev-34

10 months ago

2.0.0-dev-7

11 months ago

2.0.0-dev-37

10 months ago

2.0.0-dev-36

10 months ago

2.0.0-dev-9

11 months ago

2.0.0-dev-39

10 months ago

2.0.0-dev-38

10 months ago

2.0.0-dev-40

10 months ago

2.0.0-dev-42

10 months ago

2.0.0-dev-41

10 months ago

2.0.0-dev-44

10 months ago

2.0.0-dev-43

10 months ago

2.0.0-dev-46

10 months ago

2.0.0-dev-45

10 months ago

2.0.0-dev-48

10 months ago

2.0.0-dev-47

10 months ago

1.2.16

11 months ago

1.2.15

11 months ago

2.0.0-dev-11

11 months ago

2.0.0-dev-10

11 months ago

2.0.0-dev-13

10 months ago

2.0.0-dev-12

11 months ago

2.0.0-dev-15

10 months ago

2.0.0-dev-14

10 months ago

2.0.0-dev-17

10 months ago

2.0.0-dev-16

10 months ago

2.0.0-dev-19

10 months ago

2.0.0-dev-18

10 months ago

2.0.0-dev-20

10 months ago

2.0.0-dev-22

10 months ago

2.0.0-dev-21

10 months ago

2.0.0-dev-24

10 months ago

2.0.0-dev-23

10 months ago

2.0.0-dev-26

10 months ago

2.0.0-dev-25

10 months ago

2.0.0-dev-28

10 months ago

2.0.0-dev-27

10 months ago

2.0.0-dev-29

10 months ago

1.2.14

3 years ago

1.2.13

5 years ago

1.2.12

5 years ago

1.2.11

5 years ago

1.2.10

5 years ago

1.2.9

5 years ago

1.2.7

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago