Example #1
0
        protected override void OnGameEnd()
        {
            _server.HandleGameEnded(this);

            if (Users.All(usr => !usr.Connected))
            {
                return;
            }

            var winner = ValidEntities.Any() ? Users.First(usr => usr.Identifier == ValidEntities.First().PlayerIdentifier) : null;

            foreach (var serverUser in Users)
            {
                serverUser.Send(Packet.PacketTypeS2C.GameEnd, new GameEnd(GameIdentifier, Users.ToArray(), serverUser.Identifier == winner?.Identifier, winner));
            }
            if (winner == null)
            {
                return;
            }

            _supervisor.GameEnded(this, winner.Login, Users.Where(usr => usr.Identifier != winner.Identifier).Select(usr => usr.Login).ToArray());
        }