/// <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;
            }
        }
    }
Beispiel #3
0
 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);
    }
Beispiel #7
0
    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");
    }
Beispiel #9
0
    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);
    }
Beispiel #11
0
    /// <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);
            }
        }
    }
Beispiel #12
0
    /// <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;
        }
    }
Beispiel #13
0
 public int GetSpecificFruitIndex(DiceFieldType value)
 {
     return((int)(value - 1));
 }