UNPKG

slotify.js

Version:

A video slot game session framework for JavaScript

105 lines (104 loc) 3.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReelGameSessionReelsController = void 0; var ReelGameSessionReelsController = /** @class */ (function () { function ReelGameSessionReelsController(conf) { this._reelsNumber = conf.reelsNumber; this._reelsItemsNumber = conf.reelsItemsNumber; this._reelsSequences = conf.reelsItemsSequences; } ReelGameSessionReelsController.createItemsSequences = function (reelsNumber, availableItems, countsOfItems) { var rv; var i; var reelId; rv = []; for (i = 0; i < reelsNumber; i++) { reelId = i; if (typeof countsOfItems === "number") { rv[reelId] = this.createItemsSequence(availableItems, countsOfItems); } else { rv[reelId] = this.createItemsSequence(availableItems, (countsOfItems && countsOfItems.hasOwnProperty(reelId) ? countsOfItems[reelId] : undefined)); } } return rv; }; ReelGameSessionReelsController.createItemsSequence = function (availableItems, countsOfItems) { var _a; var i; var itemId; var rv; rv = []; for (var _i = 0, availableItems_1 = availableItems; _i < availableItems_1.length; _i++) { itemId = availableItems_1[_i]; var countIoItems = void 0; if (typeof countsOfItems === "number") { countIoItems = countsOfItems; } else { countIoItems = countsOfItems && countsOfItems.hasOwnProperty(itemId) ? countsOfItems[itemId] : 1; } for (i = 0; i < countIoItems; i++) { rv.push(itemId); } } for (i = rv.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); _a = [rv[j], rv[i]], rv[i] = _a[0], rv[j] = _a[1]; } return rv; }; ReelGameSessionReelsController.transposeMatrix = function (source) { var r; var i; var j; r = []; for (i = 0; i < source.length; i++) { for (j = 0; j < source[i].length; j++) { if (r[j] === undefined) { r[j] = []; } r[j][i] = source[i][j]; } } return r; }; ReelGameSessionReelsController.prototype.getRandomItemsCombination = function () { var i; var rv; rv = []; for (i = 0; i < this._reelsNumber; i++) { rv[i] = this.getRandomReelItems(i); } return rv; }; ReelGameSessionReelsController.prototype.getRandomReelItems = function (reelId) { var rv; var i; var placeOnSequence; var sequence; var item; rv = []; sequence = this._reelsSequences[reelId]; placeOnSequence = Math.floor(Math.random() * sequence.length); for (i = placeOnSequence; i < placeOnSequence + this._reelsItemsNumber; i++) { if (i > sequence.length - 1) { item = sequence[i - sequence.length]; } else { item = sequence[i]; } rv.push(item); } return rv; }; ReelGameSessionReelsController.prototype.getRandomItem = function (reelId) { var item; var sequence; sequence = this._reelsSequences[reelId]; item = sequence[Math.floor(Math.random() * sequence.length)]; return item; }; return ReelGameSessionReelsController; }()); exports.ReelGameSessionReelsController = ReelGameSessionReelsController;