private void pctCarta_TabB_Click(object sender, EventArgs e) { if (acao == 2) { int cartaAtacada = 0; for (int x = 0; x < 5; x++) { if (cartaTabB[x] == (PictureBox)sender) { cartaAtacada = x; break; } } MessageBox.Show("Você atacou o BOT!", "ATAQUE"); int ataque = Funcoes.atacarCarta(YGO_IM.playerid, 0, cartaTabP[cartaSelecionada], (PictureBox)sender, cartaAtacada, BOT_modoCarta[cartaAtacada]); if (ataque > 0) { MessageBox.Show(ataque + " pontos de vida infringidos no BOT!", "ATAQUE"); BOT_hp -= ataque; } else if (ataque < 0) { MessageBox.Show(ataque + " pontos de vida rebatidos no jogador!", "ATAQUE"); Player_hp += ataque; } atualizarLabels(); if (checarCondicoes() == true) { return; } else { cartaTabP[cartaSelecionada].BackColor = Color.Gray; atualizarCartasNoTab(); if (cartasUtilizadasP == true || Player_cartasNoTab == 0) { for (int x = 0; x < 5; x++) { if (cartaTabP[x].Tag.ToString() != "-1") { if (modoCartaTab[x] == 0) { cartaTabP[x].BackColor = Color.Blue; } else { cartaTabP[x].BackColor = Color.Red; } } } btnFinalizarTurno.Visible = false; MessageBox.Show("VEZ DO BOT!", "GAME"); BOT_executarJogada(cartaTabB, tooltipTabB, cartaTabP); BOT_cartasNoTab++; if (checarCondicoes() == true) { return; } else { MessageBox.Show("SUA VEZ!", "GAME"); gpbDeck.Visible = true; jogada++; acao = 0; } } else { acao = 1; } atualizarCartasNoTab(); } } }
private void gpbTabuleiroB_Click(object sender, EventArgs e) { if (acao == 2) { if (!verificarExistenciaCartasTab(cartaTabB)) { MessageBox.Show("Você atacou o BOT diretamente!", "ATAQUE"); int ataque = Funcoes.atacarCarta(YGO_IM.playerid, 0, cartaTabP[cartaSelecionada], null, -1, -1); MessageBox.Show(ataque + " pontos de vida infringidos no BOT!", "ATAQUE"); BOT_hp -= ataque; atualizarLabels(); if (checarCondicoes() == true) { return; } else { cartaTabP[cartaSelecionada].BackColor = Color.Gray; atualizarCartasNoTab(); if (cartasUtilizadasP == true || Player_cartasNoTab == 0) { Funcoes.atualizarToolTipCartas(YGO_IM.playerid, cartaTabP, tooltipTabP, modoCartaTab); for (int x = 0; x < 5; x++) { if (cartaTabP[x].Tag.ToString() != "-1") { if (modoCartaTab[x] == 0) { cartaTabP[x].BackColor = Color.Blue; } else { cartaTabP[x].BackColor = Color.Red; } } } btnFinalizarTurno.Visible = false; MessageBox.Show("VEZ DO BOT!", "GAME"); BOT_executarJogada(cartaTabB, tooltipTabB, cartaTabP); BOT_cartasNoTab++; if (checarCondicoes() == true) { return; } else { MessageBox.Show("SUA VEZ!", "GAME"); gpbDeck.Visible = true; jogada++; acao = 0; } } else { acao = 1; } atualizarCartasNoTab(); } } } }
private void BOT_executarJogada(PictureBox[] cartaTabB, ToolTip[] tooltipTabB, PictureBox[] cartaTabP) { Conexao conexao = new Conexao(); conexao.conectar(); SqlCommand cmd = new SqlCommand("sp_Sel_Prox_Carta_Deck", conexao.conexao); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@pID_Player", 0).Direction = ParameterDirection.Input; cmd.Parameters.AddWithValue("@pNr_PosDeck", ++BOT_totalCartasUsadas).Direction = ParameterDirection.Input; SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { string id = ""; string nome = ""; string atk = ""; string def = ""; var caminhoCartas = Application.StartupPath + @"\images\cards"; string textoTooltip = ""; while (dr.Read()) { id = dr["ID_Carta"].ToString(); nome = dr["Nm_Carta"].ToString(); atk = dr["Vl_Atk"].ToString(); def = dr["Vl_Def"].ToString(); Funcoes.tocarSom("carta"); bool achou1 = false; for (int x = 0; x < 5 && achou1 == false; x++) { bool result = cartaTabB[x].Tag.Equals("-1"); if (result == true) { bool achou2 = false; BOT_modoCarta[x] = 1; textoTooltip = nome.Trim() + "\nATK : " + atk + "\nDEF : " + def + "\nMODO : ATAQUE"; cartaTabB[x].BackColor = Color.Red; for (int y = 0; y < 5 && achou2 == false; y++) { SqlCommand cmd2 = new SqlCommand("sp_Sel_Carta_ESP", conexao.conexao); cmd2.CommandType = CommandType.StoredProcedure; cmd2.Parameters.AddWithValue("@pID_Player", YGO_IM.playerid).Direction = ParameterDirection.Input; cmd2.Parameters.AddWithValue("@pID_Carta", cartaTabP[y].Tag).Direction = ParameterDirection.Input; SqlDataReader dr2 = cmd2.ExecuteReader(); if (dr2.HasRows) { string atk2 = ""; string def2 = ""; while (dr2.Read()) { atk2 = dr2["Vl_Atk"].ToString(); def2 = dr2["Vl_Def"].ToString(); Funcoes.tocarSom("carta"); if (cartaTabP[y].Tag.ToString() != "-1") { if (modoCartaTab[y] == 1) { if (int.Parse(atk2) >= int.Parse(atk)) { BOT_modoCarta[x] = 0; textoTooltip = nome.Trim() + "\nATK : " + atk + "\nDEF : " + def + "\nMODO : DEFESA"; cartaTabB[x].BackColor = Color.Blue; achou2 = true; } } else { if (int.Parse(def2) >= int.Parse(atk)) { BOT_modoCarta[x] = 0; textoTooltip = nome.Trim() + "\nATK : " + atk + "\nDEF : " + def + "\nMODO : DEFESA"; cartaTabB[x].BackColor = Color.Blue; achou2 = true; } } } } } dr2.Close(); } cartaTabB[x].Visible = true; cartaTabB[x].Image = Image.FromFile(caminhoCartas.ToString() + "/" + id + ".jpg"); cartaTabB[x].Tag = "" + id; tooltipTabB[x].IsBalloon = true; tooltipTabB[x].SetToolTip(cartaTabB[x], textoTooltip); achou1 = true; } } if (achou1 == false) { bool achou3 = false; for (int z = 0; z < 5 && achou3 == false; z++) { SqlCommand cmd3 = new SqlCommand("sp_Sel_Carta_ESP", conexao.conexao); cmd3.CommandType = CommandType.StoredProcedure; cmd3.Parameters.AddWithValue("@pID_Player", 0).Direction = ParameterDirection.Input; cmd3.Parameters.AddWithValue("@pID_Carta", cartaTabB[z].Tag).Direction = ParameterDirection.Input; SqlDataReader dr3 = cmd3.ExecuteReader(); if (dr3.HasRows) { string atk3 = ""; string def3 = ""; while (dr3.Read()) { atk3 = dr3["Vl_Atk"].ToString(); def3 = dr3["Vl_Def"].ToString(); } if (int.Parse(atk3) > int.Parse(atk)) { BOT_modoCarta[z] = 1; textoTooltip = nome.Trim() + "\nATK : " + atk + "\nDEF : " + def + "\nMODO : ATAQUE"; cartaTabB[z].BackColor = Color.Red; cartaTabB[z].Visible = true; cartaTabB[z].Image = Image.FromFile(caminhoCartas.ToString() + "/" + id + ".jpg"); cartaTabB[z].Tag = "" + id; tooltipTabB[z].IsBalloon = true; tooltipTabB[z].SetToolTip(cartaTabB[z], textoTooltip); achou3 = true; } else if (int.Parse(def3) > int.Parse(def)) { BOT_modoCarta[z] = 0; textoTooltip = nome.Trim() + "\nATK : " + atk + "\nDEF : " + def + "\nMODO : DEFESA"; cartaTabB[z].BackColor = Color.Blue; cartaTabB[z].Visible = true; cartaTabB[z].Image = Image.FromFile(caminhoCartas.ToString() + "/" + id + ".jpg"); cartaTabB[z].Tag = "" + id; tooltipTabB[z].IsBalloon = true; tooltipTabB[z].SetToolTip(cartaTabB[z], textoTooltip); achou3 = true; } } dr3.Close(); } if (achou3 == false) { if (int.Parse(atk) >= int.Parse(def)) { BOT_modoCarta[4] = 1; textoTooltip = nome.Trim() + "\nATK : " + atk + "\nDEF : " + def + "\nMODO : ATAQUE"; cartaTabB[4].BackColor = Color.Red; cartaTabB[4].Visible = true; cartaTabB[4].Image = Image.FromFile(caminhoCartas.ToString() + "/" + id + ".jpg"); cartaTabB[4].Tag = "" + id; tooltipTabB[4].IsBalloon = true; tooltipTabB[4].SetToolTip(cartaTabB[4], textoTooltip); } } } } } dr.Close(); for (int y = 0; y < 5; y++) { SqlCommand cmd4 = new SqlCommand("sp_Sel_Carta_ESP", conexao.conexao); cmd4.CommandType = CommandType.StoredProcedure; cmd4.Parameters.AddWithValue("@pID_Player", 0).Direction = ParameterDirection.Input; cmd4.Parameters.AddWithValue("@pID_Carta", cartaTabB[y].Tag).Direction = ParameterDirection.Input; SqlDataReader dr4 = cmd4.ExecuteReader(); if (dr4.HasRows) { string atk = ""; string def = ""; while (dr4.Read()) { atk = dr4["Vl_Atk"].ToString(); def = dr4["Vl_Def"].ToString(); } if (verificarExistenciaCartasTab(cartaTabP) == true) { for (int x = 0; x < 5; x++) { SqlCommand cmd5 = new SqlCommand("sp_Sel_Carta_ESP", conexao.conexao); cmd5.CommandType = CommandType.StoredProcedure; cmd5.Parameters.AddWithValue("@pID_Player", YGO_IM.playerid).Direction = ParameterDirection.Input; cmd5.Parameters.AddWithValue("@pID_Carta", cartaTabP[x].Tag).Direction = ParameterDirection.Input; SqlDataReader dr5 = cmd5.ExecuteReader(); if (dr5.HasRows) { string atk2 = ""; string def2 = ""; while (dr5.Read()) { atk2 = dr5["Vl_Atk"].ToString(); def2 = dr5["Vl_Def"].ToString(); } if (int.Parse(atk) > int.Parse(atk2) && cartaTabB[y].BackColor != Color.Gray) { MessageBox.Show("Você foi atacado pelo BOT!", "ATAQUE"); int ataque = Funcoes.atacarCarta(0, YGO_IM.playerid, cartaTabB[y], cartaTabP[x], x, modoCartaTab[x]); if (ataque > 0) { MessageBox.Show(ataque + " pontos de vida infringidos no jogador!", "ATAQUE"); Player_hp -= ataque; } else if (ataque < 0) { MessageBox.Show(ataque + " pontos de vida rebatidos no BOT!", "ATAQUE"); BOT_hp += ataque; } atualizarLabels(); cartaTabB[y].BackColor = Color.Gray; if (checarCondicoes() == true) { return; } if (BOT_modoCarta[y] == 0) { BOT_modoCarta[y] = 1; } Funcoes.atualizarToolTipCartas(0, cartaTabB, tooltipTabB, BOT_modoCarta); } } dr5.Close(); } } else { MessageBox.Show("Você foi atacado pelo BOT!", "ATAQUE"); int ataque = Funcoes.atacarCarta(0, YGO_IM.playerid, cartaTabB[y], null, -1, -1); MessageBox.Show(ataque + " pontos de vida infringidos no jogador!", "ATAQUE"); Player_hp -= ataque; atualizarLabels(); cartaTabB[y].BackColor = Color.Gray; if (checarCondicoes() == true) { return; } if (BOT_modoCarta[y] == 0) { BOT_modoCarta[y] = 1; } Funcoes.atualizarToolTipCartas(0, cartaTabB, tooltipTabB, BOT_modoCarta); } } dr4.Close(); } for (int x = 0; x < 5; x++) { if (cartaTabB[x].Tag.ToString() != "-1") { if (BOT_modoCarta[x] == 0) { cartaTabB[x].BackColor = Color.Blue; } else { cartaTabB[x].BackColor = Color.Red; } } } conexao.desconectar(); }