UNPKG

slotify.js

Version:

A video slot game session framework for JavaScript

127 lines (126 loc) 5.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReelGameWithFreeGamesSession = void 0; var ReelGameSession_1 = require("./ReelGameSession"); var ReelGameWithFreeGamesSession = /** @class */ (function () { function ReelGameWithFreeGamesSession(config, reelsController, winningCalculator) { this._freeGamesNum = 0; this._freeGamesSum = 0; this._freeBank = 0; this._config = config; this._reelsController = reelsController; this._winningCalculator = winningCalculator; this._adaptee = new ReelGameSession_1.ReelGameSession(this._config, reelsController, winningCalculator); } ReelGameWithFreeGamesSession.prototype.getReelsItems = function () { return this._adaptee.getReelsItems(); }; ReelGameWithFreeGamesSession.prototype.getWinningLines = function () { return this._winningCalculator.getWinningLines(); }; ReelGameWithFreeGamesSession.prototype.getWinningScatters = function () { return this._winningCalculator.getWinningScatters(); }; ReelGameWithFreeGamesSession.prototype.getPaytable = function () { return this._config.paytable[this.getBet()]; }; ReelGameWithFreeGamesSession.prototype.getReelsItemsSequences = function () { return this._config.reelsItemsSequences; }; ReelGameWithFreeGamesSession.prototype.getReelsItemsNumber = function () { return this._config.reelsItemsNumber; }; ReelGameWithFreeGamesSession.prototype.getReelsNumber = function () { return this._config.reelsNumber; }; ReelGameWithFreeGamesSession.prototype.canPlayNextGame = function () { return this._adaptee.canPlayNextGame(); }; ReelGameWithFreeGamesSession.prototype.getAvailableBets = function () { return this._config.availableBets; }; ReelGameWithFreeGamesSession.prototype.getBet = function () { return this._adaptee.getBet(); }; ReelGameWithFreeGamesSession.prototype.getCreditsAmount = function () { return this._adaptee.getCreditsAmount(); }; ReelGameWithFreeGamesSession.prototype.setCreditsAmount = function (value) { this._adaptee.setCreditsAmount(value); }; ReelGameWithFreeGamesSession.prototype.getWinningAmount = function () { return this._adaptee.getWinningAmount(); }; ReelGameWithFreeGamesSession.prototype.isBetAvailable = function (bet) { return this._adaptee.isBetAvailable(bet); }; ReelGameWithFreeGamesSession.prototype.play = function () { var creditsBeforePlay; var wonFreeGames; if (this._freeGamesNum === this._freeGamesSum) { this._freeBank = 0; this._freeGamesNum = 0; this._freeGamesSum = 0; } creditsBeforePlay = this.getCreditsAmount(); this._adaptee.play(); if (this._freeGamesSum > 0 && this._freeGamesNum < this._freeGamesSum) { this._freeGamesNum++; this._freeBank += this.getWinningAmount(); this.setCreditsAmount(creditsBeforePlay); } wonFreeGames = this.getWonFreeGamesNumber(); if (wonFreeGames) { this._freeGamesSum += wonFreeGames; } else { if (this._freeGamesSum > 0 && this._freeGamesNum === this._freeGamesSum) { this.setCreditsAmount(this.getCreditsAmount() + this._freeBank); } } }; ReelGameWithFreeGamesSession.prototype.getWonFreeGamesNumber = function () { var rv; var scatterId; var scatterTimes; var wonScatters; rv = 0; if (this._config.freeGamesForScatters) { wonScatters = this.getWinningScatters(); for (var _i = 0, _a = Object.values(wonScatters); _i < _a.length; _i++) { var scatter = _a[_i]; scatterId = scatter.itemId; scatterTimes = scatter.itemsPositions.length; if (this._config.freeGamesForScatters.hasOwnProperty(scatterId)) { if (this._config.freeGamesForScatters[scatterId].hasOwnProperty(scatterTimes.toString())) { rv = this._config.freeGamesForScatters[scatterId][scatterTimes]; } } } } return rv; }; ReelGameWithFreeGamesSession.prototype.setBet = function (bet) { this._adaptee.setBet(bet); }; ReelGameWithFreeGamesSession.prototype.getFreeGameBank = function () { return this._freeBank; }; ReelGameWithFreeGamesSession.prototype.getFreeGameNum = function () { return this._freeGamesNum; }; ReelGameWithFreeGamesSession.prototype.getFreeGameSum = function () { return this._freeGamesSum; }; ReelGameWithFreeGamesSession.prototype.setFreeGameBank = function (value) { this._freeBank = value; }; ReelGameWithFreeGamesSession.prototype.setFreeGameNum = function (value) { this._freeGamesNum = value; }; ReelGameWithFreeGamesSession.prototype.setFreeGameSum = function (value) { this._freeGamesSum = value; }; return ReelGameWithFreeGamesSession; }()); exports.ReelGameWithFreeGamesSession = ReelGameWithFreeGamesSession;