public CreateSessionViewModel(ClientViewModel frame, LoggedClient loggedClient, LoginSessionClient loginSessionNetworkClient) { _frame = frame; _loggedClient = loggedClient; _loginSessionNetworkClient = loginSessionNetworkClient; BackCommand = new RelayCommand(BackAction); CreateSessionCommand = new RelayCommand(CreateSessionAction); AvailableCountPlayers = new List <string>() { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" }; AvailableMapSizes = new List <string>() { "Small", "Medium", "High", "Very High" }; GameSessionForm = new GameSessionForm() { MapSize = AvailableMapSizes[1], MaxPlayers = AvailableCountPlayers[5], }; }
public ConnectPage(ClientViewModel frame, Window parentWindow, LoggedClient loggedClient, LoginSessionClient loginSessionNetworkClient, Character character) { InitializeComponent(); ViewModel = new ConnectViewModel(frame, parentWindow, loggedClient, loginSessionNetworkClient, character); DataContext = ViewModel; }
public SessionViewModel(GameSession selectedSession, Character selectedCharacter, Window parentWindow, Window currentWindow, LoggedClient loggedClient) { _gameSession = selectedSession; _sessionWindow = currentWindow; _parentWindow = parentWindow; _loggedClient = loggedClient; _gameSessionNetworkClient = new GameSessionsClient(new System.ServiceModel.InstanceContext(this)); _player = _gameSessionNetworkClient.Connect(_gameSession.Id, selectedCharacter, _loggedClient); // default moving up state convention _playerLastState = PlayerState.MovingUp; _camera = new Camera(_player, CanvasWidth, CanvasHeight); ChatMessages = new ObservableCollection <string>(); ChatMessages.CollectionChanged += (sender, e) => OnPropertyChanged(nameof(ChatMessages)); GameObjectsView = new ObservableCollection <Ellipse>(); ScoreTable = new ObservableCollection <PlayerScore>(); KeyWCommand = new RelayCommand(KeyWAction); KeyACommand = new RelayCommand(KeyAAction); KeySCommand = new RelayCommand(KeySAction); KeyDCommand = new RelayCommand(KeyDAction); KeyEnterCommand = new RelayCommand(KeyEnterAction); SendMessageCommand = new RelayCommand(SendMessageAction); }
public Player GeneratePlayer(LoggedClient loggedClient, Character character, OperationContext operationContext) { try { var freeInd = int.MaxValue; for (var i = 0; i < GameSessionClients.Length; i++) { if (GameSessionClients[i] != null) { continue; } freeInd = i; break; } lock (SyncRootToPlayers) { var player = new Player(freeInd, _random.Next(_maxGlobalX), _random.Next(_maxGlobalY), 6, 4.5, character); Players[freeInd] = player; GameSessionClients[freeInd] = new GameSessionClient() { Player = player, OperationContext = operationContext, LoggedClient = loggedClient }; GameSessionManager.GameSessions[_currentSession.Id].NumberPlayers++; return(player); } } catch { return(null); } }
private void HandleSession(IClient info) { if (this.InvokeRequired) { Utils.ControlInvoke(this, () => HandleSession(info)); return; } if (info.IsLogged) { IClient client = new LoggedClient(info.Nickname, info.RealName, info.Address, info.Port); UsersViewModel.Instance.LoggedUsers.Add(client); UserList.Items.Add(new ListViewItem(client.Nickname)); } else { foreach (ListViewItem item in UserList.Items) { if (item.Text.StartsWith(info.RealName)) { UserList.Items.Remove(item); break; } } } }
public MenuViewModel(ClientViewModel frame, LoggedClient loggedClient) { _frame = frame; PlayerInfo = new PlayerInfo(loggedClient); CreateSessionCommand = new RelayCommand(CreateSessionAction, obj => loggedClient.IsAdmin); ConnectCommand = new RelayCommand(ConnectAction); CreateCharacterCommand = new RelayCommand(CreateCharacterAction); CreateSessionButtonVisibility = loggedClient.IsAdmin ? Visibility.Visible : Visibility.Collapsed; ExitCommand = new RelayCommand(ExitAction); }
public ClientViewModel(Window window, LoggedClient loggedClient, LoginSessionClient loginSessionNetworkClient) { _loginSessionNetworkClient = loginSessionNetworkClient; _window = window; _loggedClient = loggedClient; _selectCharacterPage = new SelectCharacterPage(this, loggedClient, _loginSessionNetworkClient); _createCharacterPage = new CreateCharacterPage(this, loggedClient, _loginSessionNetworkClient); _createSessionPage = new CreateSessionPage(this, loggedClient, _loginSessionNetworkClient); _menuPage = new MenuPage(this, loggedClient); }
public GameClientWindow(LoggedClient loggedClient, LoginSessionClient loginSessionNetworkClient) { InitializeComponent(); var viewModel = new ClientViewModel(this, loggedClient, loginSessionNetworkClient); DataContext = viewModel; viewModel.ShowMenuPage(); Closing += viewModel.OnWindowClosing; }
/* * Returns false if password doesn't match or an error occurs */ public override bool Logout(string nickname, string password) { if (!DBController.PasswordMatch(conn, nickname, password)) { return(false); } IClient client = new LoggedClient(nickname, DBController.GetUserRealName(conn, nickname), null, 0); MyHandler?.Invoke(client); bool sessionEnded = DBController.EndSession(conn, nickname); return(sessionEnded); }
public Player Connect(int gameSessionId, Character character, LoggedClient loggedClient) { try { // if client isn't in client table we throw the exception if (ClientTable.Instance.SearchClient(loggedClient.SessionToken) == null) { throw new Exception(); } return(GameSessionManager.GameMaps[gameSessionId] .GeneratePlayer(loggedClient, character, OperationContext.Current)); } catch { return(null); } }
public SessionWindow(GameSession selectedSession, Character selectedCharacter, Window parentWindow, LoggedClient loggedClient) { InitializeComponent(); var viewModel = new SessionViewModel(selectedSession, selectedCharacter, parentWindow, this, loggedClient); DataContext = viewModel; Closing += viewModel.OnWindowClosing; }
public CreateSessionPage(ClientViewModel frame, LoggedClient loggedClient, LoginSessionClient loginSessionNetworkClient) { InitializeComponent(); DataContext = new CreateSessionViewModel(frame, loggedClient, loginSessionNetworkClient); }
public SelectCharacterPage(ClientViewModel frame, LoggedClient loggedClient, LoginSessionClient loginSessionNetworkClient) { InitializeComponent(); ViewModel = new SelectCharacterViewModel(frame, loggedClient, loginSessionNetworkClient); DataContext = ViewModel; }
public MenuPage(ClientViewModel frame, LoggedClient loggedClient) { InitializeComponent(); DataContext = new MenuViewModel(frame, loggedClient); }
public PlayerInfo(LoggedClient loggedClient) { Nickname = loggedClient.Nickname; }