private void HandleCharacterSelectionMessage(String address, AbstractMessage message) { CharacterSelectionMessage characterSelectionMessage = (CharacterSelectionMessage)message; Player currentPlayer = controller.GetPlayer(IPAddress.Parse(address)); currentPlayer.ClearCharacters(); foreach (String rootName in characterSelectionMessage.SelectedCharacters) { currentPlayer.AddCharacter(Bundle.Characters[rootName]); } foreach (Player player in controller.GetPlayers()) { if (player.GetCharacters().Count == 0) { controller.Server.SendData(currentPlayer.IPAddress, new WaitingOponentMessage()); return; } } BattleEngine.Initialize(controller.GetLocalPlayer(), controller.GetRemotePlayer()); StartGameMessage startGameMessage = new StartGameMessage(); serverStatus = ServerStatus.WaitingCharacterPosition; controller.Server.SendToAll(startGameMessage); }