Exemplo n.º 1
0
        public void CommitBet(int startingCredits)
        {
            stateMachine.inputManager.DisableInputs();

            var nextCycle = new GameCycleData();

            nextCycle.betAmount       = stateMachine.betLevels[stateMachine.betLevelIndex] * stateMachine.minBet;
            nextCycle.startingCredits = startingCredits;
            nextCycle.reelStops       = new List <int>();

            // Set reel stops for each reel
            // Random number if not seeding game
            for (int i = 0; i < stateMachine.reels.Length; i++)
            {
                if (stateMachine.reels[i].isActiveAndEnabled)
                {
                    if (!stateMachine.seedGame)
                    {
                        int newStop = UnityEngine.Random.Range(0, stateMachine.reels[i].symbolList.Length);
                        stateMachine.reels[i].SetTargetStopPosition(newStop);
                    }

                    nextCycle.reelStops.Add(stateMachine.reels[i].targetStopPos);
                }
            }

            Award award = stateMachine.winEvaluator.EvaluateWin();

            int totalWin = 0;

            foreach (var combo in award.lines)
            {
                if (!combo.bonusTriggered)
                {
                    totalWin += combo.winAmount;
                }
            }
            foreach (var combo in award.ways)
            {
                if (!combo.bonusTriggered)
                {
                    totalWin += combo.winAmount;
                }
            }
            foreach (var combo in award.scatters)
            {
                if (!combo.bonusTriggered)
                {
                    totalWin += combo.winAmount;
                }
            }

            totalWin *= stateMachine.betLevels[stateMachine.betLevelIndex];

            nextCycle.award = award;

            nextCycle.totalWin = totalWin;
            stateMachine.AddCredits(totalWin);
            nextCycle.endingCredits = stateMachine.credits;

            stateMachine.dataManager.CommitCycle(nextCycle);
            stateMachine.currentCycleData = nextCycle;

            stateMachine.ChangeState <ReelSpinState>();
        }
Exemplo n.º 2
0
 public void StartWinCycle(Award award)
 {
     currAward = award;
     UpdateSymbolWindow();
     shouldPlayCycle = true;
 }