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>(); }
public void StartWinCycle(Award award) { currAward = award; UpdateSymbolWindow(); shouldPlayCycle = true; }