private void Showman_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(GameAccount.AccountType)) { UpdateShowman(); return; } if (e.PropertyName == nameof(GameAccount.SelectedAccount)) { if (_showman.SelectedAccount == _computerShowmans.Last()) // Новый ведущий { var account = new ComputerAccount { CanBeDeleted = true }; var newShowmanAccount = new ShowmanViewModel(account); newShowmanAccount.Add += NewShowmanAccount_Add; var contentBox = new ContentBox { Data = newShowmanAccount, Title = Resources.NewShowman, Cancel = _closeNewShowman }; Navigate?.Invoke(contentBox); return; } _model.Showman = _showman.SelectedAccount; CheckUniqueAccounts(); } }
private void NewComputerAccount_Edit(ComputerAccount origin, ComputerAccount account) { var players = _commonSettings.CompPlayers2; for (int i = 0; i < players.Count; i++) { if (players[i] == origin) { var oldAccount = players[i]; GameAccount playerAcc = null; var gamePlayers = Players; foreach (var player in gamePlayers) { if (player.SelectedAccount == oldAccount) { playerAcc = player; break; } } players[i] = account; UpdateComputerPlayers(); if (playerAcc != null) { playerAcc.SelectedAccount = account; } } } }
private void NewShowmanAccount_Add(ComputerAccount account) { _commonSettings.CompShowmans2.Add(account); UpdateComputerShowmans(); Showman.SelectedAccount = account; Content = null; }
private void NewComputerAccount_Add(ComputerAccount origin, ComputerAccount account) { _commonSettings.CompPlayers2.Add(account); UpdateComputerPlayers(); var gamePlayers = Players; foreach (var player in gamePlayers) { if (player.SelectedAccount == _computerPlayers.Last()) { player.SelectedAccount = account; } } }
private async Task ProcessPerson(List <ComputerAccountInfo> computerAccounts, Account account, CancellationToken cancellationToken) { if (!account.IsHuman && account.CanBeDeleted) // Нестандартный игрок, нужно передать его параметры на сервер { var avatar = (await UploadAvatar(account, cancellationToken))?.Item1; var computerAccount = new ComputerAccount((ComputerAccount)account) { Picture = avatar }; computerAccounts.Add(new ComputerAccountInfo { Account = computerAccount }); } }
private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e) { var acc = (GameAccount)sender; if (e.PropertyName == nameof(GameAccount.AccountType)) { UpdatePlayer(acc); } else if (e.PropertyName == nameof(GameAccount.SelectedAccount)) { var index = Players.IndexOf(acc); if (index > -1 && index < _model.Players.Length) { _model.Players[index] = acc.SelectedAccount; } if (acc.SelectedAccount == _computerPlayers.Last()) { var account = new ComputerAccount() { CanBeDeleted = true }; // Зададим ему рандомные характеристики account.Randomize(); var newComputerAccount = new ComputerAccountViewModel(account, null); newComputerAccount.Add += NewComputerAccount_Add; var contentBox = new ContentBox { Data = newComputerAccount, Title = Resources.NewPlayer, Cancel = _closeNewPlayer }; Navigate?.Invoke(contentBox); } CheckUniqueAccounts(); } }