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); }
public void AddSpecialCard(SpecialCard specialCard) { throw new NotImplementedException(); }