WebGame.Game.End C# (CSharp) Method

End() public method

public End ( ) : void
return void
        public void End()
        {
            // make sure not already ended
            if (!Ended)
            {
                // Find winner
                var winner = (from p in Players where p.Place <= 1 select p).FirstOrDefault();

                // update winner
                if (winner != null)
                    winner.Place = 1;

                // generate scores, award points
                foreach (var player in Players)
                {
                    player.ScoreExpected = Math.Round(GetScoreExpected(player) * 100) / 100;
                    player.Score = Math.Round(GenScore(player.Place) * 100) / 100;
                    player.RatingChange = (int)System.Math.Round((player.Score - player.ScoreExpected) * 150);
                }

                // update game status
                Ended = true;
                EndTime = DateTime.UtcNow;

                if (OnEnd != null)
                    OnEnd(this, winner);
            }
        }