Exemple #1
0
        public static void UpdateLadderBasedOnGame(Game game, int DefaultLadderPosition)
        {
            foreach (GamePlayer gameplayer in game.GamePlayers)
            {
                if (game.finished == 1)
                {
                    // add new people to ladder. No longer worrying about people who drop in their first game - just add them to the ladder anyway
                    if (!Ladder.Exists(x => x.PlayerName == gameplayer.playername))
                    {
                        Ladder.Add(new LadderPlayer(gameplayer.playername, DefaultLadderPosition));
                        gameplayer.currentposition = DefaultLadderPosition;
                    }
                    else
                    {
                        gameplayer.currentposition = Ladder.Find(x => x.PlayerName == gameplayer.playername).Position;
                    }

                    AddPositionalScores(game, false);


                    // Add the game info to the ladder player and set their temporary "position" ready for ordering
                    PlayerGameInfo Info = new PlayerGameInfo();
                    Info.GameNumber = game.GameNumber;
                    Info.WeekNumber = game.WeekNumber;
                    Info.Finished   = true;
                    Info.Dropped    = false;
                    Info.Faction    = gameplayer.faction;
                    Info.Rank       = gameplayer.rank;
                    LadderPlayer LP = Ladder.Find(x => x.PlayerName == gameplayer.playername);
                    LP.AddGameInfo(Info);
                    LP.Playing = true;
                    LP.TemporaryPositionDouble = LP.Position - gameplayer.score;
                    LP.AddTogmgMarathonScore(game.GameNumber, (int)gameplayer.rank);
                }
                else
                {
                    LadderPlayer LP = Ladder.Find(x => x.PlayerName == gameplayer.playername);
                    if (LP != null)
                    {
                        LP.Playing = true;
                        LP.TemporaryPositionDouble = (double)(LP.Position);
                    }
                }
            }
        }