示例#1
0
        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();
            }
        }
示例#2
0
        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;
                    }
                }
            }
        }
示例#3
0
        private void NewShowmanAccount_Add(ComputerAccount account)
        {
            _commonSettings.CompShowmans2.Add(account);
            UpdateComputerShowmans();

            Showman.SelectedAccount = account;

            Content = null;
        }
示例#4
0
        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;
                }
            }
        }
示例#5
0
        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
                });
            }
        }
示例#6
0
        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();
            }
        }