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) { } }
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); }