pixi-rainman-game-engine 0.3.30 → 0.3.31-b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -101,6 +101,7 @@ export class AbstractColumnsContainer extends Container {
|
|
|
101
101
|
RainMan.settingsStore.setIsTemporarySpeed(true);
|
|
102
102
|
RainMan.componentRegistry.setTemporarySpeedLevel(SPEED_LEVELS.fast);
|
|
103
103
|
this.executePendingMysteryFx();
|
|
104
|
+
this.currentColumn?.releaseNextColumnTrigger();
|
|
104
105
|
this.resolveMysterySpeedUp();
|
|
105
106
|
if (this.currentColumn) {
|
|
106
107
|
this.currentColumn.skipHidingMysteryFx = true;
|
|
@@ -153,20 +154,21 @@ export class AbstractColumnsContainer extends Container {
|
|
|
153
154
|
const configureSpinAction = configuredBlindSpinsActions.shift();
|
|
154
155
|
if (configureSpinAction !== undefined) {
|
|
155
156
|
if (indexesOfReelsToExtendSpinningTime.includes(index)) {
|
|
156
|
-
|
|
157
|
-
this.currentColumn
|
|
158
|
-
|
|
157
|
+
const mysteryColumn = this.allColumns[index];
|
|
158
|
+
this.currentColumn = mysteryColumn;
|
|
159
|
+
mysteryColumn.adaptToSpeed(RainMan.settingsStore.currentSpeed);
|
|
160
|
+
frame.invokeMysteryFx(mysteryColumn.x, mysteryColumn.y);
|
|
159
161
|
this.skipScatterDelay = configureSpinAction;
|
|
160
|
-
await
|
|
162
|
+
await mysteryColumn.speedUpForMysterySpin(100, 1500);
|
|
161
163
|
if (this.quickReelsStop || this.skipRemainingMysteryFxs) {
|
|
162
|
-
await
|
|
164
|
+
await mysteryColumn.changeVelocity(Speed.STOP, 0, frame);
|
|
163
165
|
}
|
|
164
166
|
else {
|
|
165
167
|
if (!RainMan.settingsStore.isAutoplayEnabled ||
|
|
166
168
|
(RainMan.settingsStore.isAutoplayEnabled && !this.quickReelsStop)) {
|
|
167
169
|
this.scheduleMysteryDelay(configureSpinAction, RainMan.config.durationOfActions.scatterDelayerTime);
|
|
168
170
|
}
|
|
169
|
-
await
|
|
171
|
+
await mysteryColumn.changeVelocity(Speed.STOP, RainMan.config.durationOfActions.scatterSpinningTime, frame);
|
|
170
172
|
}
|
|
171
173
|
frame.destroyMysteryFx();
|
|
172
174
|
}
|
|
@@ -431,8 +433,10 @@ export class AbstractColumnsContainer extends Container {
|
|
|
431
433
|
*/
|
|
432
434
|
prepareConfiguringReelsEnd(finalSymbolReels) {
|
|
433
435
|
return this.allColumns.map((column, index) => async () => {
|
|
436
|
+
this.currentColumn = column;
|
|
434
437
|
column.configBlindSpin(finalSymbolReels[index]);
|
|
435
438
|
await column.getTriggersPromise();
|
|
439
|
+
this.currentColumn = null;
|
|
436
440
|
});
|
|
437
441
|
}
|
|
438
442
|
}
|
|
@@ -167,6 +167,12 @@ export declare abstract class AbstractSymbolsColumn extends Container implements
|
|
|
167
167
|
* @returns {Promise<void>} stop promise
|
|
168
168
|
*/
|
|
169
169
|
getStopPromise(): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Function for releasing trigger to next column
|
|
172
|
+
* @public
|
|
173
|
+
* @returns {void}
|
|
174
|
+
*/
|
|
175
|
+
releaseNextColumnTrigger(): void;
|
|
170
176
|
/**
|
|
171
177
|
* Function for stopping all playing animations of symbols
|
|
172
178
|
* @public
|
|
@@ -298,6 +298,17 @@ export class AbstractSymbolsColumn extends Container {
|
|
|
298
298
|
}
|
|
299
299
|
throw new Error("No promise to return");
|
|
300
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Function for releasing trigger to next column
|
|
303
|
+
* @public
|
|
304
|
+
* @returns {void}
|
|
305
|
+
*/
|
|
306
|
+
releaseNextColumnTrigger() {
|
|
307
|
+
if (this.triggerNextColumn !== null) {
|
|
308
|
+
this.triggerNextColumn();
|
|
309
|
+
this.triggerNextColumn = null;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
301
312
|
/**
|
|
302
313
|
* Function for stopping all playing animations of symbols
|
|
303
314
|
* @public
|
|
@@ -618,12 +629,9 @@ export class AbstractSymbolsColumn extends Container {
|
|
|
618
629
|
if (element) {
|
|
619
630
|
// swap symbol with chosen element
|
|
620
631
|
symbol.swapSymbol(element);
|
|
621
|
-
// symbol.setSpineMode(MOVE3);
|
|
622
632
|
}
|
|
623
633
|
if (this.ending.length === 1) {
|
|
624
|
-
|
|
625
|
-
this.triggerNextColumn();
|
|
626
|
-
}
|
|
634
|
+
this.releaseNextColumnTrigger();
|
|
627
635
|
}
|
|
628
636
|
if (this.ending.length === 0) {
|
|
629
637
|
this.shouldMoveToTop = false;
|
|
@@ -482,30 +482,47 @@ export class AbstractController {
|
|
|
482
482
|
this.clearMobileSpinTimeout();
|
|
483
483
|
});
|
|
484
484
|
refreshButton.on("touchstart", () => {
|
|
485
|
+
if (this.mobileSpinTimeout) {
|
|
486
|
+
clearInterval(this.mobileSpinTimeout);
|
|
487
|
+
this.mobileSpinTimeout = null;
|
|
488
|
+
}
|
|
489
|
+
if (this.mobileSpinDelay) {
|
|
490
|
+
clearTimeout(this.mobileSpinDelay);
|
|
491
|
+
this.mobileSpinDelay = null;
|
|
492
|
+
}
|
|
485
493
|
if (this.buttonHeldSince === 0) {
|
|
486
494
|
this.buttonHeldSince = Date.now();
|
|
487
495
|
}
|
|
488
|
-
this.
|
|
489
|
-
|
|
490
|
-
if (
|
|
491
|
-
this.columnsContainer.enableQuickReelsStop();
|
|
492
|
-
}
|
|
493
|
-
this.handleDisablingButtons(true);
|
|
494
|
-
this.quickStopController.setQuickStopCounterLock(true);
|
|
495
|
-
this.summaryStop = this.skipFreeSpinSummary ? false : this.invokeFreeSpinSummaryPlateAfterWin;
|
|
496
|
-
if (this.invokeFreeSpinPlateAfterWin ||
|
|
497
|
-
this.summaryStop ||
|
|
498
|
-
this.shouldStopMobileSpin ||
|
|
499
|
-
this.resolveBigWin !== undefined ||
|
|
500
|
-
this.resolveSuperBonusWin !== undefined ||
|
|
501
|
-
this.resolveMysteryWin !== undefined) {
|
|
502
|
-
if (this.clearMobileSpinTimeout) {
|
|
503
|
-
this.clearMobileSpinTimeout();
|
|
504
|
-
}
|
|
496
|
+
this.mobileSpinDelay = setTimeout(() => {
|
|
497
|
+
this.mobileSpinDelay = null;
|
|
498
|
+
if (this.buttonHeldSince === 0) {
|
|
505
499
|
return;
|
|
506
500
|
}
|
|
507
|
-
this.
|
|
508
|
-
|
|
501
|
+
this.mobileSpinTimeout = setInterval(() => {
|
|
502
|
+
if (this.buttonHeldSince === 0) {
|
|
503
|
+
if (this.clearMobileSpinTimeout) {
|
|
504
|
+
this.clearMobileSpinTimeout();
|
|
505
|
+
}
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
this.columnsContainer.enableQuickReelsStop();
|
|
509
|
+
this.handleDisablingButtons(true);
|
|
510
|
+
this.quickStopController.setQuickStopCounterLock(true);
|
|
511
|
+
this.summaryStop = this.skipFreeSpinSummary ? false : this.invokeFreeSpinSummaryPlateAfterWin;
|
|
512
|
+
if (this.invokeFreeSpinPlateAfterWin ||
|
|
513
|
+
this.summaryStop ||
|
|
514
|
+
this.shouldStopMobileSpin ||
|
|
515
|
+
this.resolveBigWin !== undefined ||
|
|
516
|
+
this.resolveSuperBonusWin !== undefined ||
|
|
517
|
+
this.resolveMysteryWin !== undefined) {
|
|
518
|
+
if (this.clearMobileSpinTimeout) {
|
|
519
|
+
this.clearMobileSpinTimeout();
|
|
520
|
+
}
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
this.handleSpinLogic();
|
|
524
|
+
}, RainMan.config.durationOfActions.mobileSpinTimeout);
|
|
525
|
+
}, 250);
|
|
509
526
|
});
|
|
510
527
|
}
|
|
511
528
|
/**
|
|
@@ -1340,6 +1357,8 @@ export class AbstractController {
|
|
|
1340
1357
|
stopPlayingSymbolsStreak() {
|
|
1341
1358
|
this.columnsContainer.stopPlayingSymbolsInColumns();
|
|
1342
1359
|
this.frame.stopPlayingWinLineAnimations();
|
|
1360
|
+
this.frame.hideMysteryFx();
|
|
1361
|
+
this.frame.destroyMysteryFx();
|
|
1343
1362
|
}
|
|
1344
1363
|
/**
|
|
1345
1364
|
* Function for stopping playing symbols transformation
|
package/package.json
CHANGED