示例#1
0
        public ScoreLine AddScoreLine()
        {
            ScoreLine line = new ScoreLine();

            line.Y = (int)LineCount;
            line.X = 0;
            // line.Y = 0;

            LineCount += 1;

            Lines.Add(line);

            return(line);
        }
示例#2
0
        public override void GoToMenu(Game1 game)
        {
            Lines = new List <BasicMenuLine>();
            MaxY  = 0;
            PosY  = 1;

            ScoreLine baseline = AddScoreLine();

            baseline.Base = true;


            int ScoreCount = 0;

            foreach (ScoreHolder score in game.scores)
            {
                if (score.Used)
                {
                    ScoreCount++;
                    score.Sorted = false;
                }
            }

            ScoreHolder BestPlayer = null;

            List <ScoreHolder> ScoreList = new List <ScoreHolder>(ScoreCount);

            for (int i = 0; i < ScoreCount; i++)
            {
                int BestScore  = 0;
                int BestDeaths = 100000;

                foreach (ScoreHolder score in game.scores)
                {
                    if (score.Used && !score.Sorted)
                    {
                        int ThisScore = score.Kills;
                        if (game.gamemode == Game1.GameMode.KeepAway)
                        {
                            ThisScore = score.FlagScore;
                        }

                        if (ThisScore > BestScore || ThisScore == BestScore && score.Deaths < BestDeaths)
                        {
                            BestPlayer = score;
                            BestDeaths = score.Deaths;
                            BestScore  = ThisScore;
                        }
                    }
                }
                if (BestPlayer != null)
                {
                    BestPlayer.Sorted = true;
                    //BestPlayer.Used = false;
                    ScoreList.Add(BestPlayer);
                }
            }


            foreach (ScoreHolder score in ScoreList)
            {
                if (score.Used)
                {
                    ScoreLine line = AddScoreLine();
                    line.MyScore = score;
                    line.Base    = false;
                    MaxY        += 1;
                }
            }

            //throw new NotImplementedException();
        }