예제 #1
0
 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
     {
     }
 }
예제 #2
0
        //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
            }
        }