/// <summary> /// Main Roll Function /// </summary> /// <param name="diceType">Dice type.</param> /// <param name="directionRight">If set to <c>true</c> direction right.</param> public void Roll(DiceFieldType diceType, bool directionRight = true) { curDiceValue = diceType; int direction = directionRight ? -1 : 1; int random = Random.Range((int)minRotation, (int)maxRotation); switch (diceType) { case DiceFieldType.Raven: Animation(GetOneRound(random)); break; case DiceFieldType.One: Animation(GetOneRound(random * direction + 0.2f)); break; case DiceFieldType.Two: Animation(GetOneRound(random * direction + 0.4f)); break; case DiceFieldType.Three: Animation(GetOneRound(random * direction + 0.6f)); break; case DiceFieldType.Four: Animation(GetOneRound(random * direction + 0.8f)); break; default: break; } PlayWheelTurn(); }
public void HightLightSelected(DiceFieldType piece) { Animator mainAnimator = null; Animator animator = null; //currentSelectedShadow.enabled = true; for (int i = 0; i < diceFields.Length; i++) { if (piece == diceFields[i]) { //imageObjects[i].material.SetFloat("_Sat", 0.0f); shadowObjects[i].enabled = true; mainAnimator = imageObjects[i].GetComponent <Animator>(); animator = shadowObjects[i].GetComponent <Animator>(); if (animator != null) { mainAnimator.SetTrigger("Highlight"); animator.SetTrigger("Highlight"); } break; } } }
public void DiceRoleComplete(DiceFieldType diceNumber, FruitColor color) { if (!voiceOverOfColorDone) { VoiceOverOfColor(color); } }
public void Roll(bool directionRight = true) { if (blockRoll) { return; } curDiceValue = CalculateDice(); Roll(curDiceValue, directionRight); }
public void RollRaven() { if (blockRoll) { return; } UnHightLightSelected(); curDiceValue = DiceFieldType.Raven; Roll(curDiceValue, true); }
public void Roll(int diceType, bool directionRight = true) { if (blockRoll) { return; } UnHightLightSelected(); curDiceValue = (DiceFieldType)diceType; Roll(curDiceValue, directionRight); }
public FruitColor GetFruitColorToDiceNumber(DiceFieldType diceNumber) { FruitColor color = FruitColor.None; if ((int)diceNumber > 0) { color = imageColorList[GetSpecificFruitIndex(diceNumber)]; } return(color); }
public void PlayWheelStops(DiceFieldType diceFieldType) { AudioManager.Instance.SFXChannels[1].loop = false; if (diceFieldType == DiceFieldType.Raven) { AudioManager.Instance.SetSFXChannel(WheelStops, PlayWheelShowsRavenSound, 0, 1); } else { AudioManager.Instance.SetSFXChannel(WheelStops, PlayWheelShowsColorSound, 0, 1); } Debug.Log("PlayWheelStops"); }
public DiceFieldType GetDiceNumberForFruitColor(FruitColor fruitColor) { DiceFieldType diceNumber = DiceFieldType.None; if ((int)fruitColor > 0) { for (int i = 0; i < imageColorList.Length; i++) { if (fruitColor == imageColorList[i]) { diceNumber = (DiceFieldType)(i + 1); } } } return(diceNumber); }
public DiceFieldType CalculateDice() { // -- Initialize -- uiController.FadeOut(); // Deactivate the dice temporarilly AllowToRoll(false); // Check current fruit count to set out the possiblity //Debug.Log(gameController.GetFruitColorToDiceNumber(DiceFieldType.One) + " = " + gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.One))); if (gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.One)) <= 0) { curLikelihoodOfOne = 0; } //Debug.Log(gameController.GetFruitColorToDiceNumber(DiceFieldType.Two) + " = " + gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.Two))); if (gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.Two)) <= 0) { curLikelihoodOfTwo = 0; } //Debug.Log(gameController.GetFruitColorToDiceNumber(DiceFieldType.Three) + " = " + gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.Three))); if (gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.Three)) <= 0) { curLikelihoodOfThree = 0; } //Debug.Log(gameController.GetFruitColorToDiceNumber(DiceFieldType.Four) + " = " + gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.Four))); if (gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.Four)) <= 0) { curLikelihoodOfFour = 0; } // -- 1. Calculate the total amount of posibilities -- float totalAmountOfPosibilities = curLikelihoodOfRaven + curLikelihoodOfOne + curLikelihoodOfTwo + curLikelihoodOfThree + curLikelihoodOfFour; float randomNumber = 0.0f; if (ravenSetLastRound) { // Chance without raven randomNumber = Random.Range(curLikelihoodOfRaven, totalAmountOfPosibilities); ravenSetLastRound = false; } else { // Normal Chance randomNumber = Random.Range(0, totalAmountOfPosibilities); } // -- 2. Set Dice Result & Start Play Animation -- if (randomNumber < curLikelihoodOfRaven) { // Tell the GameController what we are looking for (-1 is for crow) curDiceValue = DiceFieldType.Raven; ravenSetLastRound = true; } else if (curLikelihoodOfOne > 0 && randomNumber >= curLikelihoodOfRaven && randomNumber < (curLikelihoodOfRaven + curLikelihoodOfOne)) { // Tell the GameController what we are looking for curDiceValue = DiceFieldType.One; } else if (curLikelihoodOfTwo > 0 && randomNumber >= (curLikelihoodOfRaven + curLikelihoodOfOne) && randomNumber < (curLikelihoodOfRaven + curLikelihoodOfOne + curLikelihoodOfTwo)) { // Tell the GameController what we are looking for curDiceValue = DiceFieldType.Two; } else if (curLikelihoodOfThree > 0 && randomNumber >= (curLikelihoodOfRaven + curLikelihoodOfOne + curLikelihoodOfTwo) && randomNumber < (curLikelihoodOfRaven + curLikelihoodOfOne + curLikelihoodOfTwo + curLikelihoodOfThree)) { // Tell the GameController what we are looking for curDiceValue = DiceFieldType.Three; } else if (curLikelihoodOfFour > 0 && randomNumber >= (curLikelihoodOfRaven + curLikelihoodOfOne + curLikelihoodOfTwo + curLikelihoodOfThree)) { // Tell the GameController what we are looking for curDiceValue = DiceFieldType.Four; } else { if (curLikelihoodOfOne > 0) { curDiceValue = DiceFieldType.One; } else if (curLikelihoodOfTwo > 0) { curDiceValue = DiceFieldType.Two; } else if (curLikelihoodOfThree > 0) { curDiceValue = DiceFieldType.Three; } else if (curLikelihoodOfFour > 0) { curDiceValue = DiceFieldType.Four; } else { Debug.Log("WTF: " + randomNumber + " - " + totalAmountOfPosibilities); } } return(curDiceValue); }
/// <summary> /// Role the dice /// </summary> public void RollDice() { // Check if a game is active and block a dice roll before the last game ends if (canRollDice) { diceModelObj.transform.rotation = Quaternion.identity; // -- Initialize -- diceBackground.enabled = diceBackgroundCollider.enabled = true; // Deactivate the dice temporarilly AllowDiceToRoll(false); // Check current fruit count to set out the possiblity if (gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.One)) <= 0) { curLikelihoodOfRed = 0; } if (gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.Two)) <= 0) { curLikelihoodOfYellow = 0; } if (gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.Three)) <= 0) { curLikelihoodOfBlue = 0; } if (gameController.GetSpecificFruitCount(gameController.GetFruitColorToDiceNumber(DiceFieldType.Four)) <= 0) { curLikelihoodOfGreen = 0; } // -- 1. Calculate the total amount of posibilities -- float totalAmountOfPosibilities = curLikelihoodOfRaven + curLikelihoodOfRed + curLikelihoodOfYellow + curLikelihoodOfBlue + curLikelihoodOfGreen; float randomNumber = 0.0f; if (ravenSetLastRound) { // Chance without raven randomNumber = Random.Range(curLikelihoodOfRaven, totalAmountOfPosibilities); ravenSetLastRound = false; } else { // Normal Chance randomNumber = Random.Range(0, totalAmountOfPosibilities); } // -- 2. Set Dice Result & Start Play Animation -- if (randomNumber < curLikelihoodOfRaven) { // Tell the GameController what we are looking for (-1 is for crow) curDiceId = DiceFieldType.Raven; ravenSetLastRound = true; // Rotating dice animation DiceAnimation(720, 720); } else if (randomNumber >= curLikelihoodOfRaven && randomNumber < (curLikelihoodOfRaven + curLikelihoodOfRed)) { // Tell the GameController what we are looking for curDiceId = DiceFieldType.One; // Rotating dice animation DiceAnimation(810, 720); } else if (randomNumber >= (curLikelihoodOfRaven + curLikelihoodOfRed) && randomNumber < (curLikelihoodOfRaven + curLikelihoodOfRed + curLikelihoodOfYellow)) { // Tell the GameController what we are looking for curDiceId = DiceFieldType.Two; // Rotating dice animation DiceAnimation(720, 630); } else if (randomNumber >= (curLikelihoodOfRaven + curLikelihoodOfRed + curLikelihoodOfYellow) && randomNumber < (curLikelihoodOfRaven + curLikelihoodOfRed + curLikelihoodOfYellow + curLikelihoodOfBlue)) { // Tell the GameController what we are looking for curDiceId = DiceFieldType.Three; // Rotating dice animation DiceAnimation(720, 90); } else if (randomNumber >= (curLikelihoodOfRaven + curLikelihoodOfRed + curLikelihoodOfYellow + curLikelihoodOfBlue)) { // Tell the GameController what we are looking for curDiceId = DiceFieldType.Four; // Rotating dice animation DiceAnimation(270, 720); } else { Debug.Log("WTF: " + randomNumber + " - " + totalAmountOfPosibilities); } } }
/// <summary> /// Function after dice role to set the result /// </summary> /// <param name="id">Identifier.</param> public void SetDiceResult(DiceFieldType id) { colourID = GetFruitColorToDiceNumber(id); DiceController.HightLightSelected(id); ActivateFruitHint(); if (OnDiceRoleComplete != null) { OnDiceRoleComplete(id, GetFruitColorToDiceNumber(id)); } if (id == DiceFieldType.Raven) { // Shuffle Dice Minigsame DiceController.AllowToRoll(false); DiceController.Enable(false); uiController.diceButton.enabled = false; //Handheld.Vibrate(); int index = ravenPositionsCount - ravenPosition; //CalculateRavenMiniGameLiklyhood(); bool miniGame = false; bool miniGameBubble = false; for (int i = 0; i < positionOfTheMinigame.Length; i++) { if (positionOfTheMinigame[i] == index) { miniGame = true; } } if (!tutorial && UnityEngine.Random.Range(0, 100) <= bubblePossibility) { for (int i = 0; i < positionOfTheBubble.Length; i++) { if (positionOfTheBubble[i] == index) { miniGameBubble = true; } } } if ((miniGame || miniGameBubble) && ravenMinigames != null && ravenMinigames.Length > 0) //index >= 0 && index < ravenMinigames.Length && ravenMinigames[index] != null) { // Start Animation, after completing run callback on method "StartMiniGame" --ravenPosition; if (miniGameBubble) { // Bubble Game currentRavenGameIndex = 0; } else { // Random Game currentRavenGameIndex = tutorial ? 0 : UnityEngine.Random.Range(0, ravenMinigames.Length); } RavenHide(StartMiniGame); } else { if (ravenPosition > 0) { Debug.Log("No Minigame implementent for Position " + (index)); currentRavenGameIndex = -1; MoveRaven(); --ravenPosition; } else { RavenWinGame(); } } } else { DiceController.AllowToRoll(false); InputManager.UnblockInput(); InputManager.BlockDiceRole(); InputManager.blockGrabing = false; uiController.diceButton.enabled = false; } }
public int GetSpecificFruitIndex(DiceFieldType value) { return((int)(value - 1)); }