Ejemplo n.º 1
0
        public HighscoreList addScore(Score score, HighscoreList highscoreList)
        {
            if (score == null || highscoreList == null || score.Name == "" || highscoreList.Scores == null)
            {
                return(null);
            }

            highscoreList.Scores = highscoreList.Scores.OrderByDescending(s => s.Points).ToList();

            if (highscoreList.Scores.Count < 10)
            {
                highscoreList.Scores.Add(score);
            }
            else
            {
                if (highscoreList.Scores.Last().Points < score.Points)
                {
                    highscoreList.Scores.Remove(highscoreList.Scores.Last());
                    highscoreList.Scores.Add(score);
                }
                else
                {
                    return(null);
                }
            }

            highscoreList.Scores = highscoreList.Scores.OrderByDescending(s => s.Points).ToList();

            return(highscoreList);
        }
Ejemplo n.º 2
0
        private void EndGame()
        {
            //判断是否为新高分
            bool isNewHighscore = false;

            if (currentScore > 0)
            {
                //高分榜中的最低分
                int lowestHighscore = HighscoreList.Count > 0 ? HighscoreList.Min(x => x.Score) : 0;

                //如果分数大于高分榜中的最低分,或者高分榜中的记录数量还不超过最大值
                //显示添加新高分的界面
                if ((currentScore > lowestHighscore) || (HighscoreList.Count < MaxHighscoreListEntryCount))
                {
                    bdrNewHighscore.Visibility = Visibility.Visible;
                    txtPlayerName.Focus();
                    isNewHighscore = true;

                    //让游戏停下来
                    isGameRuning = false;
                }
            }
            //如果不是新高分,则显示成绩
            if (isNewHighscore == false)
            {
                tbFinalScore.Text       = currentScore.ToString();
                bdrEndOfGame.Visibility = Visibility.Visible;
            }

            gameTickTimer.IsEnabled = false;
        }
Ejemplo n.º 3
0
        public void RefreshScores()
        {
            this.maxScore["Normal"] = this.dataStorageManager.GetDataOrDefault("NormalMaxScore", "0");
            this.maxScore["Hard"]   = this.dataStorageManager.GetDataOrDefault("HardMaxScore", "0");
            try
            {
                HighscoreList normalScorelist = this.GameMenu.GetVisual("normalHighscoreList") as HighscoreList;
                if (normalScorelist != null && this.NormalHighscores.Any())
                {
                    normalScorelist.TextRows.Clear();
                    foreach (Score score in this.NormalHighscores)
                    {
                        normalScorelist.TextRows.Add((this.NormalHighscores.IndexOf(score) + 1).ToString() + ". " + score.Value);
                    }
                }

                HighscoreList hardScorelist = this.GameMenu.GetVisual("hardHighscoreList") as HighscoreList;
                if (hardScorelist != null && this.HardHighscores.Any())
                {
                    hardScorelist.TextRows.Clear();
                    foreach (Score score in this.HardHighscores)
                    {
                        hardScorelist.TextRows.Add((this.HardHighscores.IndexOf(score) + 1).ToString() + ". " + score.Value);
                    }
                }
            }
            catch (Exception ex)
            { }
        }
Ejemplo n.º 4
0
    // Saves the highscores to PlayerPrefs serialized in json format
    public static void SaveScores(HighscoreList scores)
    {
        string json = JsonUtility.ToJson(scores);

        PlayerPrefs.SetString("highscoreTable", json);
        PlayerPrefs.Save();
    }
Ejemplo n.º 5
0
        private void IsNewHighscoreTest(TestHighscoreListType type, int time, int points, bool isNew)
        {
            Highscore highscore = new Highscore()
            {
                Points     = (uint)points,
                GameTime   = TimeSpan.FromSeconds(time),
                PlayerName = "player"
            };
            var list  = ProvideList((int)type);
            var clone = new List <Highscore>(list);
            ISettingsProvider provider = new TestSettingsProvider();

            provider.Highscores = list;
            provider.Save();
            HighscoreList highscoreList = new HighscoreList(provider);
            bool          b             = highscoreList.IsNewHighscore(highscore);

            Assert.Equal(isNew, b);
            if (isNew)
            {
                highscoreList.AddHighscore(highscore);
            }
            Assert.True(highscoreList.Highscores.Count <= 10);
            if (isNew)
            {
                clone.Add(highscore);
            }
            clone.Sort(new HighscoreComparer());
            clone = clone.Take(10).ToList();
            Assert.Equal(clone.Count, highscoreList.Highscores.Count);
            for (int i = 0; i < list.Count; i++)
            {
                Assert.Equal(clone[i], highscoreList.Highscores[i]);
            }
        }
Ejemplo n.º 6
0
        public static void Load()
        {
            if (inst == null)
            {
                new Highscores();
            }

            string        scene = SceneManager.GetActiveScene().name;
            string        val   = PlayerPrefs.GetString("Highscore_" + scene, "???");
            HighscoreList vals  = null;

            try
            {
                if (val != "???" && val != "{}")
                {
                    vals = JsonUtility.FromJson <HighscoreList>(val);
                }
            } catch (System.Exception) {
                Debug.Log("Warning, illegal JSON to parse: " + val);
            }
            if (vals == null)
            {
                // No highscores for this scene, init them by static values
                inst.first.Set("None", 9959997, DateTime.Now.AddDays(-1000));
                inst.second.Set("None", 9959998, DateTime.Now.AddDays(-1000));
                inst.third.Set("None", 9959999, DateTime.Now.AddDays(-1000));
                return;
            }
            inst.first  = vals.first;
            inst.second = vals.second;
            inst.third  = vals.third;
        }
        public static void Load()
        {
            PlayerPrefs.DeleteKey("HighScore1" + SceneManager.GetActiveScene());
            PlayerPrefs.DeleteKey("HighScore2" + SceneManager.GetActiveScene());
            PlayerPrefs.DeleteKey("HighScore3" + SceneManager.GetActiveScene());
            if (inst == null)
            {
                new Highscores();
            }

            string        scene = SceneManager.GetActiveScene().name;
            string        val   = PlayerPrefs.GetString("Highscore_" + scene, "???");
            HighscoreList vals  = JsonUtility.FromJson <HighscoreList>(val);

            if (val == "???" || val == "{}" || vals == null)
            {
                // No highscores for this scene, init them by static values
                inst.first.Set("None", 9959997, DateTime.Now.AddDays(-1000));
                inst.second.Set("None", 9959998, DateTime.Now.AddDays(-1000));
                inst.third.Set("None", 9959999, DateTime.Now.AddDays(-1000));
                return;
            }
            inst.first  = vals.first;
            inst.second = vals.second;
            inst.third  = vals.third;
        }
        public void ShouldIgnoreZeroEntries()
        {
            var list = new HighscoreList();

            list.Add(new HighscoreEntry("Simon", 0, DateTime.Now));

            Assert.AreEqual(0, list.Count);
        }
Ejemplo n.º 9
0
 public GeekStreamModel()
 {
     _feeds = new SortedDictionary<int,Feed>();
     _mostRecentItems = new HighscoreList<FeedItem>((a, b) => b.Published.CompareTo(a.Published),
                                                    NumberOfRecentEntries);
     _mostRecentFeeds = new HighscoreList<Feed>((a, b) => (b.LastItemPublished ?? DateTime.MinValue).CompareTo(a.LastItemPublished));
     _searchIndex = new SortedDictionary<string, SortedSet<FeedItem>>(StringComparer.InvariantCultureIgnoreCase);
     _statistics = new Statistics();
 }
Ejemplo n.º 10
0
 public GeekStreamModel()
 {
     _feeds           = new List <Feed>();
     _mostRecentItems = new HighscoreList <FeedItem>((a, b) => b.Published.CompareTo(a.Published),
                                                     NumberOfRecentEntries);
     _mostRecentFeeds = new HighscoreList <Feed>((a, b) => (b.LastItemPublished ?? DateTime.MinValue).CompareTo(a.LastItemPublished));
     _searchIndex     = new Dictionary <string, HashSet <IndexEntry> >(StringComparer.InvariantCultureIgnoreCase);
     _statistics      = new Statistics();
 }
Ejemplo n.º 11
0
        private void LoadHighscores()
        {
            _highscoreList = new HighscoreList();

            if (WaveServices.Storage.ExistsStorageFile(HIGHSCORE_FILE_NAME))
            {
                _highscoreList = WaveServices.Storage.Read <HighscoreList>(HIGHSCORE_FILE_NAME);
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Creates a new pinball machine with a given layout.
        /// </summary>
        /// <param name="layout"></param>
        public PinballMachine(IMachineLayout layout)
        {
            Layout = layout;
            Gravity = DEFAULT_GRAVITY;
            Angle = DEFAULT_ANGLE;
            Highscores = new HighscoreList();

            Init();
        }
Ejemplo n.º 13
0
    public void CreateHighscoresFile()
    {
        Highscores = new HighscoreList();

        using (StreamWriter sw = new StreamWriter(HighscoresPath))
        {
            string json = JsonUtility.ToJson(Highscores, true);
            sw.Write(json);
        }
    }
Ejemplo n.º 14
0
    public void LoadHighscores()
    {
        var highscores = Load <HighscoreList> (HighscoresPath);

        if (highscores != null)
        {
            Highscores = highscores;
            Highscores.highscores.OrderByDescending(h => h.score);
        }
    }
Ejemplo n.º 15
0
    IEnumerator getHighscores(Action <HighscoreList> action)
    {
        WWW www = new WWW(host + "/highscores");

        yield return(www);

        HighscoreList result = JsonUtility.FromJson <HighscoreList>(www.text);

        action(result);
    }
Ejemplo n.º 16
0
        public static void Save()
        {
            if (inst == null)
            {
                return;
            }
            string        scene = SceneManager.GetActiveScene().name;
            HighscoreList list  = new HighscoreList(inst.first, inst.second, inst.third);

            PlayerPrefs.SetString("Highscore_" + scene, JsonUtility.ToJson(list));
            PlayerPrefs.Save();
        }
Ejemplo n.º 17
0
    public void SaveHighscore()
    {
        Highscores.Sort();
        Highscores.RemoveAt(5);

        HighscoreList highscoreList = new HighscoreList {
            Highscores = Highscores
        };
        string json = JsonUtility.ToJson(highscoreList);

        PlayerPrefs.SetString("Highscores", json);
        PlayerPrefs.Save();
    }
Ejemplo n.º 18
0
    // Adds a score to the highscore list at position pos.
    // Should use the position returned from CheckScore.
    public static void AddScore(int pos, HighscoreEntry entry, HighscoreList list)
    {
        print("Adding score " + list.scoreList.Count + " " + pos + " " + entry.score);

        list.scoreList.Insert(pos, entry);

        // Remove the last score in the list. Only the great are to be remembered.
        if (list.scoreList.Count > 10)
        {
            list.scoreList.RemoveAt(list.scoreList.Count - 1);
        }

        SaveScores(list);
    }
Ejemplo n.º 19
0
    public void LoadHighscore()
    {
        string        json          = PlayerPrefs.GetString("Highscores");
        HighscoreList highscoreList = JsonUtility.FromJson <HighscoreList>(json);

        if (highscoreList == null)
        {
            return;
        }

        foreach (HighscoreEntry entry in highscoreList.Highscores)
        {
            Highscores.Add(entry);
        }
    }
Ejemplo n.º 20
0
    // void Start()
    // {
    //     HighscoreList highscores = Highscores.LoadScores();

    //     highscoreList = highscores.scoreList;
    //     if (highscoreList.Count == 0)
    //     {
    //         AddHighScoreEntry(25000, "President Josephy");
    //         AddHighScoreEntry(15000, "Rosko");
    //         AddHighScoreEntry(10000, "Josh");
    //         AddHighScoreEntry(9000, "Billy");
    //         AddHighScoreEntry(8000, "Mole man");
    //         AddHighScoreEntry(7000, "A cheater");
    //         AddHighScoreEntry(6000, "Josh again");
    //         AddHighScoreEntry(5000, "Gun is OP");
    //         AddHighScoreEntry(3000, "A bush");
    //         AddHighScoreEntry(1000, "One of the babies");
    //         // highscores = Highscores.LoadScores();
    //         // highscoreList = highscores.scoreList;
    //     }
    // }

    void Awake()
    {
        entryContainer = transform.Find("highscoreEntryContainer");
        entryTemplate  = entryContainer.Find("highscoreEntryTemplate");

        entryTemplate.gameObject.SetActive(false);

        // AddHighScoreEntry(999999, "Josephy");
        // AddHighScoreEntry(888888, "Rosko");
        // AddHighScoreEntry(777777, "Mole man");
        // AddHighScoreEntry(555555, "Billy");
        // AddHighScoreEntry(666666, "Thomas");
        // AddHighScoreEntry(6, "Josh the 2nd");
        // AddHighScoreEntry(5, "Josh again");
        // AddHighScoreEntry(4, "Still Josh");
        // AddHighScoreEntry(3, "Not Josh");
        // AddHighScoreEntry(2, "Ok, it's josh");

        // AddHighScoreEntry(3, "This really isn't josh");
        // AddHighScoreEntry(3, "Josh returns");
        // AddHighScoreEntry(1000000, "Better than \\/");

        HighscoreList highscores = Highscores.LoadScores();

        highscoreList = highscores.scoreList;
        if (highscoreList.Count == 0)
        {
            AddHighScoreEntry(25000, "President Josephy");
            AddHighScoreEntry(15000, "Rosko");
            AddHighScoreEntry(10000, "Josh");
            AddHighScoreEntry(9000, "Billy");
            AddHighScoreEntry(8000, "Mole man");
            AddHighScoreEntry(7000, "A cheater");
            AddHighScoreEntry(6000, "Josh again");
            AddHighScoreEntry(5000, "Gun is OP");
            AddHighScoreEntry(3000, "A bush");
            AddHighScoreEntry(1000, "One of the babies");
            highscores    = Highscores.LoadScores();
            highscoreList = highscores.scoreList;
        }

        highscoreEntryTransformList = new List <Transform>();

        foreach (HighscoreEntry entry in highscoreList)
        {
            CreateHighscoreEntry(entry, entryContainer, highscoreEntryTransformList);
        }
    }
Ejemplo n.º 21
0
    public string ListHighscoreFromHighscoreList(HighscoreList list, int size)
    {
        string output = "";

        foreach (Highscore highscore in list.data)
        {
            output = output + highscore.player1Name + " | ";
            output = output + highscore.player2Name + " | ";
            output = output + string.Format("{0:D2} | {1:D2}\n", highscore.player1Score, highscore.player2Score);
        }
        if (DownloadedHighscoreListToString != null)
        {
            DownloadedHighscoreListToString(output);
        }
        return(output);
    }
Ejemplo n.º 22
0
    // Returns highscore table in a HighscoreList object
    public static HighscoreList LoadScores()
    {
        // Load the highscore list from player prefs
        string        jsonString = PlayerPrefs.GetString("highscoreTable");
        HighscoreList list       = JsonUtility.FromJson <HighscoreList>(jsonString);

        // If no list was saved in the player prefs, create one
        if (list == null)
        {
            list = new HighscoreList {
                scoreList = new List <HighscoreEntry>()
            };
        }

        return(list);
    }
Ejemplo n.º 23
0
        public void ShouldUseCorrectOrder()
        {
            // Arrange
            var list = new HighscoreList();
            var entry1 =  new HighscoreEntry("Simon", 1, DateTime.Now);
            var entry2 =  new HighscoreEntry("Simon", 2, DateTime.Now);

            // Act
            list.Add(entry1);
            list.Add(entry2);

            // Assert
            var enumerator = list.GetEnumerator();
            enumerator.MoveNext();
            Assert.AreSame(entry2, enumerator.Current);
        }
    private void ScoreSortedLeaderboard()
    {
        //Load Save file
        string json = PlayerPrefs.GetString("LeaderboardEntries");

        highscores = JsonUtility.FromJson <HighscoreList>(json);

        //Sort highscoreEntryList...
        for (int i = 0; i < highscores.entries.Count; i++)
        {
            for (int j = i + 1; j < highscores.entries.Count; j++)
            {
                //...by playerScore
                if (highscores.entries[j].playerScore > highscores.entries[i].playerScore)
                {
                    //Swap
                    HighscoreEntry temp = highscores.entries[i];
                    highscores.entries[i] = highscores.entries[j];
                    highscores.entries[j] = temp;
                }
            }
        }
        Debug.Log(PlayerPrefs.GetString("LeaderboardEntries"));
        //Destroy Old Leaderboard Entries
        for (int i = 0; i < 10; i++)
        {
            DestroyOldHighscoreEntryTransform(entryContainer);
        }

        //Display 10 highscoreEntries from HighscoreEntryList ^^^
        highscoreEntryTransformList = new List <Transform>();
        int length = 10;

        if (highscores.entries.Count <= 10)
        {
            length = highscores.entries.Count;
        }

        for (int i = 0; i < length; i++)
        {
            CreateHighscoreEntryTransform(highscores.entries[i], entryContainer, highscoreEntryTransformList);
        }
    }
        public void AddSmallSCore()
        {
            var logic = new HighscoreLogic();

            HighscoreList highscoreList = new HighscoreList();

            highscoreList.Scores          = new List <Score>();
            highscoreList.HighscoreListId = 1;
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Schmank", Points = 30
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Friedl", Points = 20
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Dude", Points = 40
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Schmank", Points = 30
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Friedl", Points = 20
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Dude", Points = 40
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Schmank", Points = 30
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Friedl", Points = 20
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Dude", Points = 40
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Dude", Points = 40
            });

            Assert.Equal(null, logic.addScore(new Score {
                HighsoreListId = 1, Name = "Brunner", Points = 10
            }, highscoreList));
        }
        public void AddMoreThanTen()
        {
            var logic = new HighscoreLogic();

            HighscoreList highscoreList = new HighscoreList();

            highscoreList.Scores          = new List <Score>();
            highscoreList.HighscoreListId = 1;
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Schmank", Points = 30
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Friedl", Points = 20
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Dude", Points = 40
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Schmank", Points = 30
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Friedl", Points = 20
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Dude", Points = 40
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Schmank", Points = 30
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Friedl", Points = 20
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Dude", Points = 40
            });
            highscoreList.Scores.Add(new Score {
                HighsoreListId = 1, Name = "Dude", Points = 40
            });

            Assert.Equal(10, logic.addScore(new Score {
                HighsoreListId = 1, Name = "Brunner", Points = 80
            }, highscoreList).Scores.Count);
        }
Ejemplo n.º 27
0
    private void AddHighScoreEntry(int score, string name)
    {
        // Create entry
        HighscoreEntry entry = new HighscoreEntry(score, name);

        // Load highscore table
        HighscoreList highscores = Highscores.LoadScores();

        int pos = Highscores.CheckScore(score, highscores.scoreList);

        if (pos != -1 && pos != 10)
        {
            Highscores.AddScore(pos, entry, highscores);
        }
        else
        {
            print("Score " + score + " too low. Discarding.");
        }

        Highscores.SaveScores(highscores);
    }
Ejemplo n.º 28
0
    public void UpdateHighscoresFile(string user, string levelname, int scr)
    {
        HighscoreList hsList = Load <HighscoreList> (HighscoresPath);
        Highscore     temp   = new Highscore();

        hsList.highscores.Add(new Highscore()
        {
            User      = user,
            levelName = levelname,
            score     = scr
        });


        hsList.highscores.OrderByDescending(u => u.score);

        Highscores = hsList;
        using (StreamWriter sw = new StreamWriter(HighscoresPath))
        {
            string json = JsonUtility.ToJson(Highscores, true);
            sw.Write(json);
        }
    }
    private void Awake()
    {
        entryTemplate.gameObject.SetActive(false);

        //Debug.Log("Add Entry? " + PlayerPrefs.GetInt("AddEntry"));

        if (!PlayerPrefs.HasKey("LeaderboardEntries"))
        {
            //Convert highscoreList to Json file
            highscores = new HighscoreList {
                entries = new List <HighscoreEntry>()
            };
            string saveJsonEntryList = JsonUtility.ToJson(highscores);
            PlayerPrefs.SetString("LeaderboardEntries", saveJsonEntryList);
            PlayerPrefs.Save();
            //Debug.Log("If statement read.");
        }
        else
        {
            //Load Save file
            string loadJsonEntryList = PlayerPrefs.GetString("LeaderboardEntries");
            highscores = JsonUtility.FromJson <HighscoreList>(loadJsonEntryList);
            //Debug.Log("Else Statement read");
        }

        //Add new entry

        if (PlayerPrefs.GetInt("AddEntry") == 1)
        {
            AddHighscoreEntry(PlayerPrefs.GetFloat("PlayerTimeFloat"),
                              PlayerPrefs.GetString("PlayerTimeString"),
                              PlayerPrefs.GetInt("PlayerScore"),
                              PlayerPrefs.GetString("PlayerName"));
        }


        ScoreSortedLeaderboard();
    }
Ejemplo n.º 30
0
    public IEnumerator StartHighscoreDownload(bool limit, int limitSize = 100, bool ToString = true)
    {
        yield return(isGetDatabaseConnectionInfoRunning);

        WWW connection;

        if (limit)
        {
            connection = new WWW(databaseURL + "/highscore/listHighscoreLimit?limit=" + limitSize);
        }
        else
        {
            connection = new WWW(databaseURL + "/highscore/listHighscores");
        }
        yield return(connection);

        if (connection.error == null)
        {
            Debug.Log("Highscore successfully downloaded!");
            HighscoreList highscoreListDB = HighscoreList.CreateFromJSON(connection.text);
            if (ToString)
            {
                ListHighscoreFromHighscoreList(highscoreListDB, limitSize);
            }
            else
            {
                if (DownloadedHighscoreList != null)
                {
                    DownloadedHighscoreList(highscoreListDB);
                }
            }
        }
        else
        {
            Debug.LogError("Error: " + connection.error);
        }
        yield return(null);
    }
    private void AddHighscoreEntry(float timeFloat, string timeString, int playerScore, string playerName)
    {
        //Setup Entry Values
        HighscoreEntry highscoreEntry = new HighscoreEntry {
            timeFloat   = timeFloat,
            timeString  = timeString,
            playerScore = playerScore,
            playerName  = playerName
        };

        //Load Save file
        string        loadJsonEntryList = PlayerPrefs.GetString("LeaderboardEntries");
        HighscoreList highscores        = JsonUtility.FromJson <HighscoreList>(loadJsonEntryList);

        //Add new entry to list
        highscores.entries.Add(highscoreEntry);

        //Convert highscoreList to Json file
        string saveJsonEntryList = JsonUtility.ToJson(highscores);

        PlayerPrefs.SetString("LeaderboardEntries", saveJsonEntryList);
        PlayerPrefs.Save();
    }
        public async Task <HighscoreList> PostScore(Score score)
        {
            HighscoreList highscoreList = await _context.HighscoreLists
                                          .Include(hl => hl.Scores)
                                          .FirstAsync(hl => hl.HighscoreListId == 1);



            var logic = new HighscoreLogic();

            highscoreList = logic.addScore(score, highscoreList);
            if (highscoreList != null)
            {
                _context.HighscoreLists.Update(highscoreList);
                await _context.SaveChangesAsync();

                return(highscoreList);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 33
0
        /// <summary>
        /// Initializes a new instance of MainWindowViewModel.
        /// </summary>
        /// <param name="builder">An object that is responsible for building core game objects.</param>
        /// <param name="highscores">The list of the highscores in the game.</param>
        /// <param name="gameSerializer">An object that is responsible for saving and loading GameState.</param>
        /// <param name="validator">An object that validates control keys used in the game.</param>
        /// <param name="provider">An object that provides some configuration settings used in the game.</param>
        public MainWindowViewModel(IGameBuilder builder, HighscoreList highscores, IGameSerializer gameSerializer,
                                   IKeysValidator validator, ISettingsProvider provider) : base("Main")
        {
            if (provider == null)
            {
                throw new ArgumentNullException(nameof(provider));
            }
            _provider = provider;
            var vm = new List <ViewModelBase>
            {
                new StartMenuViewModel(this, gameSerializer),
                new OptionsViewModel(this, validator),
                new HighscoresViewModel(highscores),
                new GameViewModel(builder, this, this, provider),
                new EndGameViewModel(highscores),
                new PauseViewModel(this, gameSerializer)
            };

            foreach (var result in vm.OfType <CloseableViewModel>())
            {
                result.RequestClose += (sender, args) => OnCloseView((sender as ViewModelBase)?.Name);
            }
            ViewModels = vm;
        }
Ejemplo n.º 34
0
 /// <summary>
 /// Initializes a new instance of HighscoreViewModel.
 /// </summary>
 /// <param name="highscoreList">The list of highscores.</param>
 public HighscoresViewModel(HighscoreList highscoreList) : base("Highscores")
 {
     HighscoreList = highscoreList;
 }
Ejemplo n.º 35
0
        /// <summary>
        /// Load all the highscore lists.
        /// </summary>
        public void CreateHighscoreLists()
        {
            mHighscores = new HighscoreList[3, 7];

            for (int diff = 0; diff < mHighscores.GetLength(0); ++diff)
            {
                for (int lvl = 0; lvl < mHighscores.GetLength(1); ++lvl)
                {
                    mHighscores[diff, lvl] = new HighscoreList((Difficulty)diff, (Level)lvl);
                }
            }
        }