void TheGame_OnPlayerAdded(Common.IPlayer player, bool isDealer)
        {
            if (InvokeRequired)
            {
                Invoke(new Game.PlayerListChangeDelegate(TheGame_OnPlayerAdded), new object[] { player, isDealer });
                return;
            }

            AddPlayerToStatistics(player, isDealer);
        }
 private void RemovePlayerFromStatistics(Common.IPlayer player)
 {
     for (int i = 0; i < _statistics.Items.Count; i++)
     {
         if (_statistics.Items[i].Text == player.Name)
         {
             _statistics.Items.RemoveAt(i);
             return;
         }
     }
 }
        private void UpdatePlayerStatistics(Common.IPlayer player, int wins, int draws, int looses)
        {
            for (int i = 0; i < _statistics.Items.Count; i++)
            {
                if (_statistics.Items[i].Text == player.Name)
                {
                    _statistics.Items[i].SubItems[1].Text = wins.ToString();
                    _statistics.Items[i].SubItems[2].Text = draws.ToString();
                    _statistics.Items[i].SubItems[3].Text = looses.ToString();

                    return;
                }
            }
        }
        private void AddPlayerToStatistics(Common.IPlayer player, bool isDealer)
        {
            ListViewItem lvi = new ListViewItem(player.Name);

            lvi.SubItems.Add("0");
            lvi.SubItems.Add("0");
            lvi.SubItems.Add("0");

            if (isDealer)
            {
                lvi.ForeColor = Color.Blue;
            }

            _statistics.Items.Add(lvi);
        }
        public MainWindow()
        {
            InitializeComponent();

            Program.TheGame.OnPlayerAdded       += new Game.PlayerListChangeDelegate(TheGame_OnPlayerAdded);
            Program.TheGame.OnPlayerRemoved     += new Game.PlayerListChangeDelegate(TheGame_OnPlayerRemoved);
            Program.TheGame.OnPlayerListCleared += new Game.PlayerListClearedDelegate(TheGame_OnPlayerListCleared);
            Program.TheGame.OnDealerChanged     += new Game.DealerChangeDelegate(TheGame_OnDealerChanged);
            Program.TheGame.OnRoundEnd          += new Game.EndOfRoundDelegate(TheGame_OnRoundEnd);
            Program.TheGame.OnStatusChanged     += new Game.GameStatusChangeDelegate(TheGame_OnStatusChanged);

            try
            {
                string playersError = string.Empty;
                foreach (string player in Game.PlayersDirectory.Instance.LoadedPlayerAssemblies)
                {
                    try
                    {
                        Common.IPlayer playerInstance = Game.PlayersDirectory.Instance.CreateInstanceOfPlayer(player);
                        if (Program.TheGame.Dealer == null)
                        {
                            Program.TheGame.Dealer = playerInstance;
                        }
                        else
                        {
                            Program.TheGame.AddPlayer(playerInstance);
                        }
                    }
                    catch
                    {
                        playersError += "Player: " + player + " coludnot be loaded.\n";
                    }
                }

                if (!string.IsNullOrEmpty(playersError))
                {
                    MessageBox.Show(playersError, "Error loading some players", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            EnableGameControls(Game.GameStatus.Stopped);

            InitAnimations();
        }
        void TheGame_OnDealerChanged(Common.IPlayer oldDealer, Common.IPlayer newDealer)
        {
            if (InvokeRequired)
            {
                Invoke(new Game.DealerChangeDelegate(TheGame_OnDealerChanged), new object[] { oldDealer, newDealer });
                return;
            }

            if (oldDealer != null)
            {
                RemovePlayerFromStatistics(oldDealer);
            }

            if (newDealer != null)
            {
                AddPlayerToStatistics(newDealer, true);
            }
        }
示例#7
0
        private void _addToGameButton_Click(object sender, EventArgs e)
        {
            try
            {
                if (_playerModulesList.SelectedIndices == null)
                {
                    return;
                }

                foreach (int i in _playerModulesList.SelectedIndices)
                {
                    Common.IPlayer player = Game.PlayersDirectory.Instance.CreateInstanceOfPlayer(_playerModulesList.Items[i].Text);
                    Program.TheGame.AddPlayer(player);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                RefreshPlayerList();
            }
        }