예제 #1
0
        public void UpdateRound(string round, PokemonImageType imageType)
        {
            List <PictureBox> roundControls = pnlRounds.Controls.OfType <Panel>().SelectMany(x => x.Controls.OfType <PictureBox>()).ToList();

            var l = roundControls.SelectMany(x => x.Controls.OfType <PictureBox>()).ToList();

            roundControls.AddRange(l);

            var cc  = roundControls.FirstOrDefault(f => round.Equals(f.AccessibleName));
            var cc1 = roundControls.FirstOrDefault(f => f.AccessibleName.Equals(round + "T", StringComparison.CurrentCultureIgnoreCase));

            try
            {
                if (imageType.Image == null || imageType.Image.Equals(""))
                {
                    cc.Image  = null;
                    cc1.Image = null;
                    GameData.Pokemons.Remove(round);
                }
                else
                {
                    using (var tmp = new Bitmap(imageType.Image))
                    {
                        cc.Image = new Bitmap(tmp);
                    }

                    cc1.Image = GetBitmap(imageType.PokemonType);

                    if (cc1.Image == null)
                    {
                        cc1.Hide();
                    }
                    else
                    {
                        cc1.Show();
                    }

                    GameData.Pokemons[round] = imageType;
                }

                Updated?.Invoke(GameData);
            }
            catch (Exception e)
            {
            }
        }
예제 #2
0
        public bool PokemonSelected(PokemonImageType imageType, bool isUndo = false)
        {
            var player = PlayersList.FirstOrDefault(x => x.GameData.Index.Equals(CurrentPlayer + ""));

            if (player == null)
            {
                return(false);
            }

            if (CurrentPlayer == 1 && CurrentRound == 7 && !isUndo)
            {
                MessageBox.Show("Game Over!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(true);
            }

            player.UpdateRound(CurrentRound == 0 ? "Ban" : CurrentRound + "", imageType);

            CurrentPokemonImageType = imageType;

            if (!isUndo)
            {
                AddItem();
            }

            if (CurrentPlayer == 8 && CurrentRound == 0)
            {
                CurrentPlayer = 1;
                CurrentRound  = 1;
                _skip         = true;
                _isTurned     = true;
            }

            if (!_skip)
            {
                if (CurrentPlayer == 1 && !_isTurned)
                {
                    CurrentRound++;
                    _isTurned = true;
                }
                else if (CurrentPlayer == 1 && _isTurned)
                {
                    CurrentPlayer++;
                    _isTurned    = false;
                    CurrentOrder = Order.Increasing;
                }
                else if (CurrentPlayer == Players && !_isTurned)
                {
                    CurrentRound++;
                    _isTurned = true;
                }
                else if (CurrentPlayer == Players && _isTurned)
                {
                    CurrentPlayer--;
                    CurrentOrder = Order.Decreasing;
                    _isTurned    = false;
                }
                else if (CurrentOrder == Order.Increasing)
                {
                    CurrentPlayer++;
                }
                else
                {
                    CurrentPlayer--;
                }
            }
            else
            {
                _skip = false;
            }

            return(true);
        }