Exemplo n.º 1
0
    /// <summary>
    /// Permite agregar un item a la carta.
    /// </summary>
    /// <param name="idCarta">Identifier carta.</param>
    /// <param name="idItem">Identifier item.</param>
    public void AgregarItemCarta(int idCarta, int idItem)
    {
        Carta carta         = BuscarCarta(idCarta);
        Item  item          = BuscarItem(idItem);
        bool  progresoLleno = false;

        if (item.GetType() == typeof(Piedra))
        {
            if (carta.Progreso.Piedra >= 100)
            {
                progresoLleno = true;
            }
            else
            {
                carta.AñadirPiedra(item.Cantidad);
            }
        }
        else
        {
            if (carta.Progreso.Pocion >= 100)
            {
                progresoLleno = true;
            }
            else
            {
                carta.AñadirPocion(item.Cantidad);
            }
        }
        if (!progresoLleno)
        {
            int exp = AñadirExperienciaJugador();
            new AñadirItemCartaPrevisualizadaCommand(item).AñadirAlaCola();
            new AñadirItemCartaCommand(carta, item).AñadirAlaCola();

            new ShowMessageCommand("¡Obtienes " + exp + " puntos de experiencia!", 1f).AñadirAlaCola();
            if (carta.Progreso.Piedra >= 100 && carta.Progreso.Pocion >= 100)
            {
                if (ExisteEvolucion(carta))
                {
                    new ShowMessageCommand("¡Ya puedes evolucionar la carta!", 1f).AñadirAlaCola();
                }
            }
            BaseDatos.Instance.ActualizarItemCarta(carta, item);
            BaseDatos.Instance.ActualizarNivelYExperienciaBaseDatos();
        }
        else
        {
            MessageManager.Instance.ShowMessage("¡El progreso de este item está lleno!", 2f);
        }
    }