示例#1
0
 public void AddSpecialCard(SpecialCard specialCard, int playerId = -1, string buffType = null)
 {
     if (specialCard.Type == "captain")
     {
         if (playerId == 0 || playerId == 1)
         {
             captainCards[playerId] = specialCard;
         }
         else
         {
             throw new IndexOutOfRangeException();
         }
     }
     else if (specialCard.Type == "weather")
     {
         weatherCards.Add(specialCard);
     }
     else
     {
         if (buffType != null)
         {
             if (playerId == 0 || playerId == 1)
             {
                 if (buffType == "melee")
                 {
                     specialMeleeCards[playerId] = specialCard;
                 }
                 else if (buffType == "range")
                 {
                     specialRangeCards[playerId] = specialCard;
                 }
                 else
                 {
                     specialLongRangeCards[playerId] = specialCard;
                 }
             }
             else
             {
                 throw new IndexOutOfRangeException();
             }
         }
         else
         {
             throw new ArgumentNullException();
         }
     }
 }
        // ---------------------------------------------------------------------------------



        // ---------------------------- METODOS QUE SE PIDEN EN EL LAB ---------------------------------
        public void agregarCartasALosMazos()
        {
            // Buscamos la ruta hacia Decks.txt
            string path = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.
                          Parent.FullName + @"\Files\Decks.txt";

            // Abrimos el archivo para leer de el
            StreamReader reader = new StreamReader(path);

            // Leemos la primera linea. En este caso, line guarda "START"
            string line = reader.ReadLine();
            // Creamos una lista de cartas para guardarlas todas
            List <Card> aux = new List <Card>();

            // Mientras no lleguemos al final del deck, vamos agregando cartas
            while (true)
            {
                // line ahora guarda la primera linea que realmente es una carta
                line = reader.ReadLine();
                if (line == "END")
                {
                    break;
                }
                // Separado es un array donde se guardan en cada valor las caracteristica de la carta
                string[] separado = line.Split(",");
                if (separado[0] == "CombatCard")
                {
                    CombatCard nuevaCarta = new CombatCard(separado[1], (EnumType)Enum.Parse(typeof(EnumType), separado[2]), separado[3], int.Parse(separado[4]), bool.Parse(separado[5]));
                    aux.Add(nuevaCarta);
                }
                else
                {
                    SpecialCard nuevaCarta = new SpecialCard(separado[1], (EnumType)Enum.Parse(typeof(EnumType), separado[2]), separado[3]);
                    aux.Add(nuevaCarta);
                }
            }

            // Agregamos las cartas al deck 0 (del jugador 1)
            decks[0].Cards = aux;

            // Reiniciamos el string line
            line = "";
            List <Card> aux2 = new List <Card>();

            // Ahora line es START
            line = reader.ReadLine();

            while (true)
            {
                // line ahora guarda la primera linea que realmente es una carta
                line = reader.ReadLine();
                if (line == "END")
                {
                    break;
                }
                // Separado es un array donde se guardan en cada valor las caracteristica de la carta
                string[] separado = line.Split(",");
                // Dependiendo de la clase creamos una carta u otra
                if (separado[0] == "CombatCard")
                {
                    // Creamos la carta y la agregamos a la lista
                    CombatCard nuevaCarta = new CombatCard(separado[1], (EnumType)Enum.Parse(typeof(EnumType), separado[2]), separado[3], int.Parse(separado[4]), bool.Parse(separado[5]));
                    aux2.Add(nuevaCarta);
                }
                else
                {
                    SpecialCard nuevaCarta = new SpecialCard(separado[1], (EnumType)Enum.Parse(typeof(EnumType), separado[2]), separado[3]);
                    aux2.Add(nuevaCarta);
                }
            }

            // Agregamos las cartas al deck 1 (del jugador 2)
            decks[1].Cards = aux2;

            // Ya podemos cerrar el archivo
            reader.Close();
        }
 public void AddSpecialCard(SpecialCard specialCard)
 {
     cards.Add(specialCard);
 }
示例#4
0
 public void AddSpecialCard(SpecialCard specialCard)
 {
     throw new NotImplementedException();
 }