private void btn_listar_pokemons_disponiveis_Click(object sender, EventArgs e) { ResultadoSorteio form = new ResultadoSorteio(); DialogResult dr = MessageBox.Show("Deseja ver somente os pokémons do arquivo?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Question); // Se não obter pokémons, sai do método. if (!obter_pokemons(dr == DialogResult.Yes)) { return; } form.alimentar_pokemons_disponiveis(_pokemons_disponiveis); form.ShowDialog(); }
private void sortear_times(bool usar_arquivo) { if (lst_listview.Items.Count == 0) { MessageBox.Show("Adicione os jogadores"); return; } // Obtem os pokémons disponíveis para sorteio. if (!obter_pokemons(usar_arquivo)) { return; } int nmr_pokemons_por_jogador = (int)nmc_qtd_pokemons.Value; if (nmr_pokemons_por_jogador > _pokemons_disponiveis.Count) { MessageBox.Show("A quantidade de pokémons disponíveis é menor do que a quantidade de pokémons por jogador!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } ResultadoSorteio form = new ResultadoSorteio(); foreach (string jogador in lst_listview.Items) { List <Pokemon> pokemons_sorteados = new List <Pokemon>(); decimal media_base_status = 0m; bool sorteou_mega_form = false; bool precisa_mega_form = false; while (media_base_status < Convert.ToInt32(nmc_media_minima_base_status.Value) || precisa_mega_form) { pokemons_sorteados = sortear_pokemons(nmr_pokemons_por_jogador, chk_permite_repetir.Checked); int total_base_status = 0; for (int i = 0; i < nmr_pokemons_por_jogador; i++) { if (!sorteou_mega_form) { if (sorteou_mega_form = pokemons_sorteados[i].MegaForms != null) { sorteou_mega_form = pokemons_sorteados[i].MegaForms.Length > 0; } } total_base_status += pokemons_sorteados[i].TotalStatus; } if (chk_incluir_mega_evolucao.Checked) { precisa_mega_form = true; if (sorteou_mega_form) { precisa_mega_form = false; } } media_base_status = decimal.Divide(total_base_status, nmr_pokemons_por_jogador); // Define false para caso tenha sorteado mega forma mas a média não tenha batido, garantindo que caso seja feito novo sorteio // tenha uma mega evolução também sorteou_mega_form = false; } // ATENÇÃO: Não sei o motivo, mas se tirar esse sleep, os jogadores ficam com os mesmos pokémons. Thread.Sleep(20); if (chk_sorteio_secreto.Checked) { escrever_sorteio_arquivo(jogador, pokemons_sorteados); } else { form.alimentar_resultado_sorteio(jogador, pokemons_sorteados); } pokemons_sorteados.Clear(); } // Só abre o form do resultado se o sorteio não for secreto if (chk_sorteio_secreto.Checked) { MessageBox.Show("Sorteio realizado com sucesso!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { form.ShowDialog(); } }