public void AddCard(Card.Card card, int playerId = -1, string buffType = null) { if (card.GetType().Name == nameof(CombatCard)) { if (playerId == 0 || playerId == 1) { if (playerCards[playerId].ContainsKey(card.Type)) { playerCards[playerId][card.Type].Add(card); } else { playerCards[playerId].Add(card.Type, new List <Card.Card>() { card }); } } else { throw new IndexOutOfRangeException("No player id given"); } } else { } }
//Metodos public void AddCard(Card.Card card, int playerId = -1, string buffType = null) { if (card.GetType().Name == nameof(CombatCard)) { if (playerId == 0 || playerId == 1) { if (playerCards[playerId].ContainsKey(card.Type)) { playerCards[playerId][card.Type].Add(card); } else { playerCards[playerId].Add(card.Type, new List <Card.Card>() { card }); } } else { throw new IndexOutOfRangeException("No player id given"); } } else { if (card.GetType().Name == nameof(SpecialCard)) { if (playerId == 0 || playerId == 1) { if (playerCards[playerId].ContainsKey(card.Type)) //como solo puede haber un tipo de specialcard en el board no dejo que se repita ninguna, y weather cards esta dentro de este diccionario tambien, ya que es una specialcard tambien { throw new IndexOutOfRangeException($"There is a {card.Type} already on the board"); } else { playerCards[playerId].Add(card.Type, new List <Card.Card>() { card }); } } else { throw new IndexOutOfRangeException("No player id given"); } } } }
//Metodos public void AddCard(Card.Card card, int playerId = -1, string buffType = null) { if (card.GetType().Name == nameof(CombatCard)) { if (playerId == 0 || playerId == 1) { if (playerCards[playerId].ContainsKey(card.Type)) { playerCards[playerId][card.Type].Add(card); } else { playerCards[playerId].Add(card.Type, new List <Card.Card>() { card }); } } } }
//Metodos public void AddCard(Card.Card card, int playerId = -1, string buffType = null) { //Revisar si la carta recibida en el parmetro es Combat o Special if (card.GetType().Name == nameof(CombatCard)) { //En caso de que sea de combate , agregarla al diccionario del jugador correspondiente , revisando el parmetro playerId if (playerId == 0 || playerId == 1) { //Se revisa si el diccionario ya tiene alguna carta del tipo que se quiere agregar, por ejemplo melee. //Constainskey revisa si existe la llave en el diccionario.En caso de existir retorna true.Por ejemlo , si la carta es de tipo "melee", //el mtodo buscar si existe la llave "melee" en el // diccionario. if (playerCards[playerId].ContainsKey(card.Type)) { //Si es que existe no es necesario crear la lista de cartas, por lo que se agrega directamente playerCards[playerId][card.Type].Add(card); } else { //Si no existe , se agrega un nuevo par "Llave": Valor al diccionario. //Este par tiene como "Llave" el tipo de la carta , ejemplo "melee". //Este par tiene como valor la lista de cartas , con la primera carta que se va a agregar. playerCards[playerId].Add(card.Type, new List <Card.Card>() { card }); } } else { throw new IndexOutOfRangeException("No player id given"); } } else { //Es capitan? IMPLEMENTAR //Revisar si no se ha agregado el capitan en el } }