Beispiel #1
0
        private void pctCarta_TabP_Click(object sender, EventArgs e)
        {
            PictureBox aux = (PictureBox)sender;

            if (acao == 1 && aux.BackColor != Color.Gray)
            {
                MessageBoxManager.Yes = "Atacar";
                MessageBoxManager.No  = "Mudar modo";

                var escolha = MessageBox.Show("O que deseja fazer com esta carta?", "CARTA", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (escolha == DialogResult.Yes)
                {
                    if (aux.BackColor == Color.Blue)
                    {
                        MessageBoxManager.Yes = "Sim";
                        MessageBoxManager.No  = "Não";

                        var certeza = MessageBox.Show("Esta carta está em modo defesa! Atacar com ela mudará o modo da mesma.\nDeseja continuar?", "CARTA", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                        if (certeza == DialogResult.Yes)
                        {
                            for (int x = 0; x < 5; x++)
                            {
                                if (cartaTabP[x] == aux)
                                {
                                    modoCartaTab[x] = 1;
                                    Funcoes.atualizarToolTipCartas(YGO_IM.playerid, cartaTabP, tooltipTabP, modoCartaTab);

                                    cartaSelecionada = x;

                                    break;
                                }
                            }

                            acao = 2;
                        }
                    }
                    else
                    {
                        for (int x = 0; x < 5; x++)
                        {
                            if (cartaTabP[x] == aux)
                            {
                                cartaSelecionada = x;

                                break;
                            }
                        }

                        acao = 2;
                    }
                }
                else
                {
                    for (int x = 0; x < 5; x++)
                    {
                        if (cartaTabP[x] == aux)
                        {
                            if (modoCartaTab[x] == 1)
                            {
                                cartaTabP[x].BackColor = Color.Blue;
                                modoCartaTab[x]        = 0;
                            }
                            else
                            {
                                cartaTabP[x].BackColor = Color.Red;
                                modoCartaTab[x]        = 1;
                            }

                            Funcoes.atualizarToolTipCartas(YGO_IM.playerid, cartaTabP, tooltipTabP, modoCartaTab);

                            break;
                        }
                    }
                }
            }
            else if (acao == 3)
            {
                aux.Tag = "-1";

                btnFinalizarTurno.Visible = true;

                modoCartaTab[cartaSelecionada] = Funcoes.lancarCarta(YGO_IM.playerid, cartaDeck[cartaSelecionada], tooltipDeck[cartaSelecionada], cartaTabP, tooltipTabP);
                totalCartasUsadas++;
                Funcoes.atualizarCarta(YGO_IM.playerid, totalCartasUsadas, cartaDeck[cartaSelecionada], tooltipDeck[cartaSelecionada]);
                atualizarCartasNoTab();

                MessageBox.Show("Selecione uma carta para atacar!", "ATAQUE");

                acao = 1;

                gpbDeck.Visible = false;
            }
        }
Beispiel #2
0
        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();
                    }
                }
            }
        }
Beispiel #3
0
        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();
        }