Example #1
0
        private static SummaryData ExecuteFreeSpin(int level, RequestContext <BonusArgs> bonusRequestcontext, WolvesResult result)
        {
            var bonus         = module.CreateBonus(result);
            var summData      = new SummaryData();
            var freeSpinBonus = bonus.Value as WolvesBonus;
            var totalFreeSpin = 0;
            var fscouter      = 0;

            switch (result.Wheel.Reels.Sum(ele => ele.Count(item => item == 9)))
            {
            case 3:
                totalFreeSpin = 10;
                break;

            case 4:
                totalFreeSpin = 15;
                break;

            case 5:
                totalFreeSpin = 20;
                break;
            }
            do
            {
                var freeSpinResult = BonusReducer.dispatch(level, freeSpinBonus, bonusRequestcontext) as WolvesSeqFreeSpinResult;
                var spinResult     = freeSpinResult.SpinResult;
                if (spinResult.Wheel.Type == 4)
                {
                    summData.FgRollingWin += spinResult.Win;
                }
                else
                {
                    summData.FSpinCounter++;
                    fscouter++;
                    summData.FSTotalWin += spinResult.Win;
                }

                if (spinResult.HasBonus)
                {
                    summData.FgRollingHit++;
                    Assert.True(spinResult.Win > 0);
                }

                if (freeSpinResult.IsCompleted)
                {
                    break;
                }
                freeSpinBonus = freeSpinResult.Bonus as WolvesBonus;
            } while (true);

            Assert.AreEqual(totalFreeSpin, fscouter);
            return(summData);
        }