Esempio n. 1
0
    public void ScorePoints(int points, bool addStreak = true)
    {
        // Add score BEFORE changing multiplier.
        st.ChangeScore(points * multiplier);

        /* Check if we need to up the multiplier level, as per chart below:
         * Multiplier levels: 1x, 2x, 3x, 5x, 10x.
         * Streak length: 5 letters, 10 letters, 25 letters, 50 letters.
         */
        if (addStreak)
        {
            letterStreak++;

            //Update our record.
            if (letterStreak > st.HighestStreak)
            {
                // This uses a delta value, so we need to remove the original number to create a new absolute.
                // Or just use a set method, TBD.
                st.ChangeHighestStreak(letterStreak - st.HighestStreak);
            }

            // And our multiplier.
            if (letterStreak == 50)
            {
                multiplier = 10;
            }
            else if (letterStreak == 25)
            {
                multiplier = 5;
            }
            else if (letterStreak == 10)
            {
                multiplier = 3;
            }
            else if (letterStreak == 5)
            {
                multiplier = 2;
            }
        }
        UpdateScoreBoard();
    }