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(); }