Beispiel #1
0
    /// <summary>
    /// Muestra los premios obtenidos en la partida para el jugador usuario.
    /// </summary>
    /// <param name="carta">Carta.</param>
    /// <param name="items">Items.</param>
    /// <param name="experiencia">Experiencia.</param>
    public void MostrarPremioPartida(Carta carta, List <Item> items, int experiencia)
    {
        puntosExp.text = "ENHORABUENA, HAS OBTENIDO " + experiencia.ToString() + " PUNTOS DE EXP";
        PremioPartidaPanel.SetActive(true);
        if (carta != null)
        {
            CartaBase      asset          = carta.AssetCarta;
            int            progresoTrebol = carta.Progreso.Piedra;
            int            progresoPocion = carta.Progreso.Pocion;
            GameObject     cartaGobj      = Instantiate(ObjetosGenerales.Instance.CardInventario, transform);
            OneCardManager manager        = cartaGobj.GetComponent <OneCardManager>();
            ProgresoVisual progreso       = cartaGobj.GetComponent <ProgresoVisual>();
            manager.CartaAsset = asset;
            progreso.PorcentajeProgresoPiedra = progresoTrebol;
            progreso.PorcentajeProgresoPocion = progresoPocion;
            manager.LeerDatos();
            progreso.LeerProgreso();
            cartaGobj.transform.SetParent(horizontalLayoutGroup.gameObject.transform);
        }
        GameObject itemGobj;

        foreach (Item item in items)
        {
            itemGobj = Instantiate(ObjetosGenerales.Instance.ItemInventario, transform);
            OneItemManager manager = itemGobj.GetComponent <OneItemManager>();
            manager.Item = item;
            manager.LeerDatosItem();
            itemGobj.transform.SetParent(horizontalLayoutGroup.gameObject.transform);
        }
    }
Beispiel #2
0
    /// <summary>
    /// Añade al territorio de batalla una magica.
    /// </summary>
    /// <param name="ca">Ca.</param>
    /// <param name="idUnico">Identifier unico.</param>
    /// <param name="indiceSlot">Indice slot.</param>
    public void AñadirMagica(CartaBase ca, int idUnico, int indiceSlot)
    {
        //Debug.Log("Añadir ente magica");
        GameObject creature = GameObject.Instantiate(ObjetosGenerales.Instance.MagicaPrefab, slots.Children[indiceSlot].transform.position, Quaternion.identity) as GameObject;

        creature.GetComponent <MagicEffectVisual>().ColocarMagicaBocaAbajo(0f);
        ConfigurarEnte(creature, ca, idUnico, indiceSlot);
    }
Beispiel #3
0
    /// <summary>
    /// Añade al territorio de batalla una criatura en defensa.
    /// </summary>
    /// <param name="ca">Ca.</param>
    /// <param name="idUnico">Identifier unico.</param>
    /// <param name="indiceSlot">Indice slot.</param>
    public void AñadirCriaturaDefensa(CartaBase ca, int idUnico, int indiceSlot)
    {
        //Debug.Log("Añadir ente criatura como defensa");
        GameObject creature = GameObject.Instantiate(ObjetosGenerales.Instance.CriaturaPrefab, slots.Children[indiceSlot].transform.position, Quaternion.identity) as GameObject;

        creature.GetComponent <CreatureAttackVisual>().ColocarCriaturaEnDefensa(ConfiguracionUsuario.Instance.CardTransitionTimeFast);
        ConfigurarEnte(creature, ca, idUnico, indiceSlot);
    }
Beispiel #4
0
 public CartaPartida(CartaBase ca)
 {
     this.assetCarta = ca;
     // get unique int ID
     ResetCosteMana();
     idCarta = IDFactory.GetBattleUniqueID();
     Recursos.CartasCreadasEnElJuego.Add(idCarta, this);
 }
Beispiel #5
0
    /// <summary>
    ///Añade al territorio de batalla una criatura en ataque.
    /// </summary>
    /// <param name="ca">Ca.</param>
    /// <param name="idUnico">Identifier unico.</param>
    /// <param name="indiceSlot">Indice slot.</param>
    public void AñadirCriaturaAtaque(CartaBase ca, int idUnico, int indiceSlot)
    {
        //Debug.Log("Añadir ente criatura como ataque");
        // create a new creature from prefab
        GameObject creature = GameObject.Instantiate(ObjetosGenerales.Instance.CriaturaPrefab, slots.Children[indiceSlot].transform.position, Quaternion.identity) as GameObject;

        // apply the look from CardAsset
        ConfigurarEnte(creature, ca, idUnico, indiceSlot);
    }
Beispiel #6
0
 // CONSTRUCTOR
 public Ente(AreaPosition area, CartaBase ca)
 {
     this.area       = area;
     this.assetCarta = ca;
     defensa         = ca.Defensa;
     ataque          = ca.Ataque;
     idCriatura      = IDFactory.GetBattleUniqueID();
     Recursos.EntesCreadosEnElJuego.Add(idCriatura, this);
 }
Beispiel #7
0
 public Carta(string idAsset, CartaBase ca)
 {
     // set the CardAsset reference
     this.idAsset    = idAsset;
     this.assetCarta = ca;
     // get unique int ID
     idCarta  = IDFactory.GetMenuUniqueID();
     progreso = new Progreso();
 }
Beispiel #8
0
    /// <summary>
    /// Instancia el ente y configura sus valores.
    /// </summary>
    /// <param name="ente">Ente.</param>
    /// <param name="ca">Ca.</param>
    /// <param name="idUnico">Identifier unico.</param>
    /// <param name="indiceSlot">Indice slot.</param>
    private void ConfigurarEnte(GameObject ente, CartaBase ca, int idUnico, int indiceSlot)
    {
        string         tagEnte = "";
        OneEnteManager manager = null;

        if (ente.name.Contains("Magica"))
        {
            tagEnte = "Magica";
            manager = ente.GetComponent <OneMagicaManager> ();
        }
        else
        {
            tagEnte = "Criatura";
            manager = ente.GetComponent <OneCreatureManager>();
        }
        manager.CartaAsset = ca;
        manager.LeerDatosAsset();
        foreach (Transform t in ente.GetComponentsInChildren <Transform>())
        {
            t.tag = owner.ToString() + tagEnte;
        }
        // parent a new creature gameObject to table slots
        ente.transform.SetParent(slots.transform);
        // add a new creature to the list
        // Debug.Log ("insert index: " + index.ToString());
        EntesOnTable.Insert(indiceSlot, ente);
        // let this creature know about its position
        WhereIsTheCardOrEntity w = ente.GetComponent <WhereIsTheCardOrEntity>();

        w.Slot = indiceSlot;
        if (ente.tag.Contains("Low"))
        {
            //PETA
            w.EstadoVisual = VisualStates.MesaJugadorAbajo;
        }
        else
        {
            w.EstadoVisual = VisualStates.MesaJugadorArriba;
        }
        if (ente.GetComponents <AudioSource> () [0] != null && ente.GetComponents <AudioSource> () [0].clip != null)
        {
            ente.GetComponents <AudioSource>()[0].Play();
        }
        // add our unique ID to this creature
        IDHolder id = ente.AddComponent <IDHolder>();

        id.UniqueID = idUnico;

        ActualizarSlots();
        MoverSlotCartas();
        // TODO: remove this
        Comandas.Instance.CompletarEjecucionComanda();
    }
Beispiel #9
0
    /// <summary>
    /// Instancia una carta, con o sin progreso.
    /// </summary>
    /// <returns>The carta jugador.</returns>
    /// <param name="idAsset">Identifier asset.</param>
    /// <param name="progreso">Progreso.</param>
    private Carta CrearCartaJugador(string idAsset, Progreso progreso)
    {
        string    assetJSON = assets.Child(idAsset).GetRawJsonValue();
        CartaBase asset     = JsonUtility.FromJson <CartaBase>(assetJSON);
        Carta     carta     = new Carta(idAsset, asset);

        if (progreso != null)
        {
            carta.Progreso = progreso;
        }
        return(carta);
    }
Beispiel #10
0
    /// <summary>
    /// Permite crear assets de las cartas y subirlas a Firebase.
    /// </summary>
    /// <param name="cartas">Cartas.</param>
    private static void CrearAssetsCartas(Dictionary <string, Dictionary <string, SimpleJSON.JSONNode> > cartas)
    {
        foreach (string familia in CartasXML.CARTAS.FAMILIAS)
        {
            if (cartas.ContainsKey(familia))
            {
                foreach (KeyValuePair <string, SimpleJSON.JSONNode> entrada in cartas[familia])
                {
                    CartaBase asset        = new CartaBase();
                    string    carpetaCarta = obtenerFormatoNombreCorrectoDirectorio(entrada.Key);
                    string    nombre       = entrada.Value["carta"]["delante"]["titulo"];
                    asset.Nombre = nombre;

                    Familia tipoCarta = obtenerTipoCarta(entrada.Value["carta"]["delante"]["tipo"]);
                    asset.Familia = tipoCarta;

                    if (asset.Familia.Equals(Familia.Magica))
                    {
                        asset.Efecto = obtenerEfecto(entrada.Value ["carta"] ["delante"] ["efecto"]);
                    }

                    string descripcion = entrada.Value["carta"]["delante"]["descripcion"];
                    asset.Descripcion = descripcion;

                    asset.InfoCarta = entrada.Value["carta"]["delante"]["infoCarta"];

                    int mana = System.Int32.Parse(entrada.Value["carta"]["delante"]["mana"]);
                    asset.CosteMana = mana;

                    string rutaImagen = obtenerRutaImagen(familia, carpetaCarta, entrada.Value["carta"]["delante"]["nombreImagen"]);
                    asset.RutaImagenCarta = rutaImagen;

                    int defensa = 0;
                    int ataque  = 0;
                    if (!asset.Familia.Equals(Familia.Magica))
                    {
                        defensa = System.Int32.Parse(entrada.Value["carta"]["delante"]["defensa"]);
                        ataque  = System.Int32.Parse(entrada.Value["carta"]["delante"]["ataque"]);
                    }
                    asset.Defensa = defensa;
                    asset.Ataque  = ataque;

                    int evolucion = System.Int32.Parse(entrada.Value["carta"]["delante"]["evolucion"]);
                    asset.Evolucion = evolucion;

                    int idEvolucion = System.Int32.Parse(entrada.Value["carta"]["delante"]["idEvolucion"]);
                    asset.IDEvolucion = idEvolucion;

                    GuardarAssetBaseDatos(familia, asset);
                }
            }
        }
    }
Beispiel #11
0
        private int Scontro(CartaBase attaccante, CartaBase difensore, PictureBox elemAtt, PictureBox elemDif, Giocatore_carte_base vittima, Label vita_vittima)
        {
            //Controlla gli elementi

            //fuoco, sasso, ghiaccio
            //fuoco - sasso (fuoco)
            //ghiaccio - sasso (sasso)
            //fuoco - ghiaccio (ghiaccio)

            bool vittoria = attaccante.Elemento == 'f' && difensore.Elemento == 's' ||
                            attaccante.Elemento == 's' && difensore.Elemento == 'g' ||
                            attaccante.Elemento == 'g' && difensore.Elemento == 'f';

            int plus = 0;

            if (vittoria) //vittoria elementale
            {
                plus = 1;
                elemAtt.BackColor = Color.LightGreen;
                elemDif.BackColor = Color.LightCoral;
            }
            else if (attaccante.Elemento == difensore.Elemento) //parità
            {
                elemAtt.BackColor = Color.Bisque;
                elemDif.BackColor = Color.Bisque;
            }
            else //sconfitta elementale
            {
                plus = -1;
                elemAtt.BackColor = Color.LightCoral;
                elemDif.BackColor = Color.LightGreen;
            }

            //Per ora la determinazione non conta
            int dmg = attaccante.Atk - difensore.Def;

            dmg += plus;

            if (dmg < 0)
            {
                dmg = 0;
            }

            vittima.LessHp(dmg);

            //Output vita

            vita_vittima.Text      = "HP: " + vittima.CurHp + "/" + vittima.MaxHp;
            vita_vittima.ForeColor = Color.Red;

            return(dmg);
        }
Beispiel #12
0
    /// <summary>
    /// Busca en la base de datos Firebase si existe una evolucion con los parametros dados.
    /// </summary>
    /// <returns>The evolucion.</returns>
    /// <param name="familia">Familia.</param>
    /// <param name="evolucion">Evolucion.</param>
    /// <param name="idEvolucion">Identifier evolucion.</param>
    public KeyValuePair <string, CartaBase> BuscarEvolucion(Familia familia, int evolucion, int idEvolucion)
    {
        var           json    = assets.Value as Dictionary <string, object>;
        List <string> keyList = new List <string>(json.Keys);
        KeyValuePair <string, CartaBase> evolucionEncontrada = new KeyValuePair <string, CartaBase> ("", null);

        foreach (string idAsset in keyList)
        {
            string    assetJSON = assets.Child(idAsset).GetRawJsonValue();
            CartaBase asset     = JsonUtility.FromJson <CartaBase>(assetJSON);
            if (asset.Familia.Equals(familia) && asset.IDEvolucion == idEvolucion && asset.Evolucion == (evolucion + 1))
            {
                evolucionEncontrada = new KeyValuePair <string, CartaBase> (idAsset, asset);
            }
        }
        return(evolucionEncontrada);
    }
Beispiel #13
0
    private GameObject CrearCarta(Carta carta)
    {
        CartaBase  asset          = carta.AssetCarta;
        int        progresoPiedra = carta.Progreso.Piedra;
        int        progresoPocion = carta.Progreso.Pocion;
        GameObject elemento       = Instantiate(ObjetosGenerales.Instance.CardInventario, transform);

        elemento.GetComponent <BoxCollider2D> ().size = gridLayoutGroup.cellSize;
        IDHolder id = elemento.AddComponent <IDHolder>();

        id.UniqueID = carta.ID;
        OneCardManager manager  = elemento.GetComponent <OneCardManager>();
        ProgresoVisual progreso = elemento.GetComponent <ProgresoVisual>();

        manager.CartaAsset = asset;

        progreso.PorcentajeProgresoPiedra = progresoPiedra;
        progreso.PorcentajeProgresoPocion = progresoPocion;
        manager.LeerDatos();
        progreso.LeerProgreso();

        elemento.transform.SetParent(gridLayoutGroup.gameObject.transform);
        return(elemento);
    }
Beispiel #14
0
 // CONSTRUCTOR
 public Magica(AreaPosition area, CartaBase ca) : base(area, ca)
 {
     this.efectoActivado = false;
 }
Beispiel #15
0
 /// <summary>
 /// Permite subir a firebase una carta.
 /// </summary>
 /// <param name="familia">Familia.</param>
 /// <param name="asset">Asset.</param>
 public static void GuardarAssetBaseDatos(string familia, CartaBase asset)
 {
     BaseDatos.Instance.GuardarCarta(familia, asset);
 }
Beispiel #16
0
 /// <summary>
 /// Añade una carta al conjunto de cartas creadas en el juego en Firebase.
 /// </summary>
 /// <param name="familia">Familia.</param>
 /// <param name="asset">Asset.</param>
 public void GuardarCarta(string familia, CartaBase asset)
 {
     ReferenciaAssets().Push().SetRawJsonValueAsync(JsonUtility.ToJson(asset));
     Debug.Log("Guardar carta ok");
 }
Beispiel #17
0
 // CONSTRUCTOR
 public Criatura(AreaPosition area, CartaBase ca, PosicionCriatura posicionCriatura) : base(area, ca)
 {
     this.posicionCriatura = posicionCriatura;
     this.haAtacado        = false;
 }
Beispiel #18
0
        private void bt_attacco_Click(object sender, EventArgs e)
        {
            bt_attacco.Hide();
            bt_nascondi.Hide();

            bt_successivo.Show();

            string tipo = player.CarteInMano[cartaSelezionata].Tipo;

            if (tipo == "attacco")
            {
                CartaBase cartaTua = (CartaBase)(player.CarteInMano[cartaSelezionata]);
                cartaTua.SetBuff(player.ValBuff);

                cartaTua.UsaCarta(player);

                if (tuoTurno)
                {
                    //Il nemico sceglie una carta
                    nemico.ScegliCarta();

                    CartaBase cartaNemico = (CartaBase)(nemico.CartaUsata);

                    cartaNemico.Visualizza(img_cartaA, nomeCartaA, detA, attA, defA, elemA);

                    detA.BackColor = Color.LightGoldenrodYellow;

                    defA.BackColor = Color.LightBlue;
                    attA.BackColor = Color.LightGray;

                    //Buff a livello grafico
                    if (nemico.DebuffApplicato)
                    {
                        attA.Text += nemico.DebuffVal;
                        defA.Text += nemico.DebuffVal;

                        attA.ForeColor = Color.BlueViolet;
                        defA.ForeColor = Color.BlueViolet;
                    }
                    else
                    {
                        attA.ForeColor = Color.Black;
                        defA.ForeColor = Color.Black;
                    }

                    int dmg = Scontro(cartaTua, cartaNemico, elem0, elemA, nemico, vita_avversario);

                    if (dmg >= 3)//aggiungi determinazione quando fai un buon danno
                    {
                        cartaTua.AddDeterminazione(2);

                        det0.Text      = cartaTua.Determinazione.ToString();
                        det0.ForeColor = Color.GreenYellow;
                    }
                    else //comunque ogni turni perdi punti
                    {
                        cartaTua.DimDeterminazione(1); //perdi un punto
                        det0.Text = cartaTua.Determinazione.ToString(); //aggiorni la scritta
                    }
                }
                else
                {
                    CartaBase cartaNemico = (CartaBase)(nemico.CartaUsata);

                    cartaNemico.SetBuff(nemico.DebuffVal);
                    int dmg = Scontro(cartaNemico, cartaTua, elemA, elem0, player, vita_giocatore);
                    cartaNemico.SetBuff(0);

                    if (dmg >= 2)  //perdi determinazione quando subisci troppi danni
                    {
                        cartaTua.DimDeterminazione(2);

                        det0.Text      = cartaTua.Determinazione.ToString();
                        det0.ForeColor = Color.Crimson;
                    }
                    else //comunque ogni turni perdi punti
                    {
                        cartaTua.DimDeterminazione(1); //perdi un punto
                        det0.Text = cartaTua.Determinazione.ToString(); //aggiorni la scritta
                    }
                }
                cartaTua.SetBuff(0); //finito il turno levo il buff
            }
            else
            {
                Carta cartaTua = player.CarteInMano[cartaSelezionata];
                if (tipo == "cura")
                {
                    ((CartaCura)cartaTua).UsaCarta(player);
                }
                else if (tipo == "curaEstesa")
                {
                    ((CartaCuraEstesa)cartaTua).UsaCarta(player);

                    curaEstesa.Show();
                }
                else if (tipo == "buff")
                {
                    ((CartaBuff)cartaTua).UsaCarta(player);

                    img_buff.Show();
                }
                else if (tipo == "debuff")
                {
                    ((CartaDebuff)cartaTua).UsaCarta(nemico); //applica l'effetto sul nemico

                    img_debuff.Show();
                }
                else if (tipo == "dannoContiuno")
                {
                    ((CartaDannoContinuo)cartaTua).UsaCarta(nemico); //applica l'effetto sul nemico

                    img_dannoPerpetuo.Show();
                }

                if (!tuoTurno)
                {
                    //Per ora la determinazione non conta
                    int dmg = ((CartaBase)(nemico.CartaUsata)).Atk;

                    if (dmg < 0)
                    {
                        dmg = 0;
                    }

                    player.LessHp(dmg);

                    //Output vita

                    vita_giocatore.Text      = "HP: " + player.CurHp + "/" + player.MaxHp;
                    vita_giocatore.ForeColor = Color.Red;
                }

                //Ogni volta che usi una carta effetto perdi determinazione

                cartaTua.DimDeterminazione(1);                  //perdi un punto
                det0.Text = cartaTua.Determinazione.ToString(); //aggiorni la scritta
            }

            //icone buff/debuff

            if (tuoTurno)
            {
                if (player.CuraEstesa)
                {
                    player.ApplicaBuffCura();
                    vita_giocatore.Text      = "HP: " + player.CurHp + "/" + player.MaxHp;
                    vita_giocatore.ForeColor = Color.YellowGreen;
                    curaEstesa.Show();
                }

                if (player.BuffApplicato)
                {
                    player.ApplicaBuffStats();
                    img_buff.Show();
                }
            }
            else
            {
                if (nemico.DebuffApplicato)
                {
                    nemico.ApplicaDebuff();
                }

                if (nemico.DannoApplicato)
                {
                    nemico.ApplicaDannoPerpetuo();
                    vita_avversario.Text      = "HP: " + nemico.CurHp + "/" + nemico.MaxHp;
                    vita_avversario.ForeColor = Color.Red;
                }
            }

            //Allo scadere dei turni toglie i flags di status
            if (!player.CuraEstesa)
            {
                curaEstesa.Hide();
            }

            if (!player.BuffApplicato)
            {
                img_buff.Hide();
            }

            if (!nemico.DebuffApplicato)
            {
                img_debuff.Hide();
            }

            if (!nemico.DannoApplicato)
            {
                img_dannoPerpetuo.Hide();
            }


            //controlla vita del nemico
            if (nemico.CurHp <= 0)
            {
                MessageBox.Show("Hai vinto lo scontro!");

                /*
                 * //Pesca una nuova carta per non rompere il sistema
                 * player.PescaCarta(cartaSelezionata);
                 *
                 * player.CarteInMano[cartaSelezionata]
                 * .Visualizza(img_carta[cartaSelezionata], nomeCarta[cartaSelezionata], det[cartaSelezionata],
                 * att[cartaSelezionata], def[cartaSelezionata], elem[cartaSelezionata]);*/

                nemico.GameOver();
            }
            else if (player.CurHp <= 0)
            {
                MessageBox.Show("Hai perso lo scontro.");

                /*
                 * //Pesca una nuova carta per non rompere il sistema
                 * player.PescaCarta(cartaSelezionata);
                 *
                 * player.CarteInMano[cartaSelezionata]
                 * .Visualizza(img_carta[cartaSelezionata], nomeCarta[cartaSelezionata], det[cartaSelezionata],
                 * att[cartaSelezionata], def[cartaSelezionata], elem[cartaSelezionata]);
                 */

                player.GameOver();
            }

            //controlla determinazione
            if (player.CarteInMano[cartaSelezionata].Determinazione <= 0 &&
                player.CarteInMano[cartaSelezionata].Tipo != "morto") //ovviamente la carta non deve essere già morta
            {
                //nascondi la carta vecchia
                player.CarteInMano[cartaSelezionata].Nascondi(img_carta0, nomeCarta0, det0, att0, def0, elem0);

                //la carta viene rimpiazzata con la carta morto
                int indice = player.CarteInMano[cartaSelezionata].Indice;    //salvo il vecchio indice
                player.CarteInMano[cartaSelezionata].SetUtilizzabile(false); //la carta verrà rimossa dal mazzo

                player.CarteInMano[cartaSelezionata]        = ListaCarte.GetMorto();
                player.CarteInMano[cartaSelezionata].Indice = indice;

                player.Mazzo.MorteCarta(indice); //uccide la carta

                //mostra la carta nuova
                player.CarteInMano[cartaSelezionata].Visualizza(img_carta0, nomeCarta0, det0);
            }
        }
Beispiel #19
0
        private void bt_successivo_Click(object sender, EventArgs e)
        {
            bt_successivo.Hide();

            det0.ForeColor = Color.Black;

            //rimuovi dalla selezione
            player.CarteInMano[cartaSelezionata].Nascondi(img_carta0, nomeCarta0, det0, att0, def0, elem0);

            img_carta0.Show();
            img_carta0.Image = Properties.Resources.SpazioVuoto;

            //peschi una nuova carta
            player.PescaCarta(cartaSelezionata);

            player.CarteInMano[cartaSelezionata]
            .Visualizza(img_carta[cartaSelezionata], nomeCarta[cartaSelezionata], det[cartaSelezionata],
                        att[cartaSelezionata], def[cartaSelezionata], elem[cartaSelezionata]);

            cartaSelezionata = -1;

            tuoTurno = !tuoTurno; //cambia turno

            //Entrambi tornano neri nel caso uno dei due fosse rosso
            vita_avversario.ForeColor = Color.Black;
            vita_giocatore.ForeColor  = Color.Black;


            if (!tuoTurno)
            {
                //Il nemico sceglie una nuova carta con cui attaccare
                nemico.ScegliCarta();
                CartaBase cartaNemico = (CartaBase)(nemico.CartaUsata);

                cartaNemico.Visualizza(img_cartaA, nomeCartaA, detA, attA, defA, elemA);

                defA.BackColor = Color.LightGray;

                attA.BackColor  = Color.LightBlue;
                elemA.BackColor = Color.LightBlue;

                detA.BackColor = Color.LightGoldenrodYellow;

                messaggioGiocatore.Hide();
                messaggioNemico.Show();


                //Buff a livello grafico
                if (nemico.DebuffApplicato)
                {
                    attA.Text += nemico.DebuffVal;
                    defA.Text += nemico.DebuffVal;

                    attA.ForeColor = Color.BlueViolet;
                    defA.ForeColor = Color.BlueViolet;
                }
                else
                {
                    attA.ForeColor = Color.Black;
                    defA.ForeColor = Color.Black;
                }
            }
            else
            {
                ((CartaBase)(nemico.CartaUsata)).Nascondi(img_cartaA, nomeCartaA, detA, attA, defA, elemA);

                img_cartaA.Show();
                img_cartaA.Image = Properties.Resources.SpazioVuoto;

                messaggioGiocatore.Show();
                messaggioNemico.Hide();
            }
        }