Ejemplo n.º 1
0
 static int SortByLowerScore(highScoreNamePair p1, highScoreNamePair p2)
 {
     return(p1.highScore.CompareTo(p2.highScore));
 }
Ejemplo n.º 2
0
    /*
     * Generate the actual pair of the high score and the player identity.
     * This function is called by 'HighScoreNameLinkerGroup' by the method 'generateLinks()' to
     * generate all at once.
     */
    public void generateHighScoreNameLink()
    {
        int score = 0;

        //bool newHighScore = false;

        //Debug.LogWarning("generateHighScoreNameLink");

        generateSaveKey();
        load();

        switch (highScoreSource)
        {
        case hsnSelection.valueScript:
            getVSscript();
            score = Mathf.RoundToInt(vs.value);
            break;

        case hsnSelection.scoreCounter:
            score = sc.getScore();
            break;

        default:
            score = 0;
            break;
        }

        //if the player got gameover, add a new highscore entry
        highScoreNamePair hsnp = new highScoreNamePair();

        hsnp.highScore = score;
        //hsnp.valid = true;
        hsnp.countryName = CountryNameGenerator.instance.getCountryNameText();;

        //sort the highscore, depending on selection
        switch (highScoreSort)
        {
        case hsnSorting.lowest:
            hsnPairs.list.Add(hsnp);
            hsnPairs.list.Sort(SortByLowerScore);
            break;

        case hsnSorting.highest:
            hsnPairs.list.Add(hsnp);
            hsnPairs.list.Sort(SortByHigherScore);
            break;

        case hsnSorting.lastOnTop:
            //add on top, don't sort
            hsnPairs.list.Insert(0, hsnp);
            break;

        default:
            hsnPairs.list.Insert(0, hsnp);
            break;
        }

        int maxNumberOfEntries = 5;

        if (2 * highScoreFields.Length > maxNumberOfEntries)
        {
            maxNumberOfEntries = 2 * highScoreFields.Length;
        }

        if (hsnPairs.list.Count > maxNumberOfEntries)
        {
            //keep the highscore list size small
            hsnPairs.list = hsnPairs.list.GetRange(0, maxNumberOfEntries - 1);
        }

        save();
    }