Exemple #1
0
 public List <ListObject> GetAssignmentsByUser(string userID)
 {
     if (Itens == null)
     {
         return(null);
     }
     else
     {
         List <Item>       newItens   = Itens.FindAll(it => it.UserID == Int32.Parse(userID));
         List <ListObject> ListReturn = new List <ListObject>();
         ListObject        obj;
         if (newItens != null && newItens.Count > 0)
         {
             foreach (Item element in newItens)
             {
                 obj = new ListObject()
                 {
                     ItemDescription = element.Description, ItemID = element.ItemID
                 };
                 if (Assignments != null)
                 {
                     List <Assignment> ListAssignments = Assignments.FindAll(assi => assi.ItemID == element.ItemID);
                     foreach (Assignment assi in ListAssignments)
                     {
                         obj.Add(assi);
                     }
                 }
                 ListReturn.Add(obj);
             }
         }
         return(ListReturn);
     }
 }
Exemple #2
0
 public List <Item> GetItensByUser(string userID)
 {
     if (Itens == null)
     {
         return(null);
     }
     else
     {
         return(Itens.FindAll(it => it.UserID == Int32.Parse(userID)));
     }
 }
Exemple #3
0
        /// <summary>
        /// Usar somente para moedas.
        /// </summary>
        /// <param name="classe"></param>
        /// <param name="outItem"></param>
        /// <param name="quantidade"></param>
        /// <returns></returns>
        public bool TryRemoveItemCurrency(RPClasse classe, out RPBaseItem outItem, int quantidade = 1)
        {
            outItem = null;
            var todosCurrency   = Itens.FindAll(x => x.Classe == classe);
            int quantidadeTotal = 0;

            // Soma todas as currency igual
            foreach (var item in todosCurrency)
            {
                quantidadeTotal += (item as RPMoedaEmpilhavel).PilhaAtual;
            }

            if (todosCurrency.Count != 0)
            {
                if (quantidadeTotal < quantidade)
                {
                    return(false);
                }
                var item = (todosCurrency[0] as RPMoedaEmpilhavel).Clone();
                item.PilhaAtual = quantidade;
                outItem         = item;

                // Subtrai de todas as currency
                while (quantidade != 0)
                {
                    for (int i = todosCurrency.Count - 1; i >= 0; i--)
                    {
                        if (quantidade != 0)
                        {
                            var itemConvertido = todosCurrency[i] as RPMoedaEmpilhavel;
                            itemConvertido.PilhaAtual--;
                            quantidade--;
                            if (itemConvertido.PilhaAtual == 0)
                            {
                                Itens.Remove(itemConvertido);
                                todosCurrency.RemoveAt(i);
                                Espaco -= itemConvertido.Espaco;
                            }
                            if (quantidade == 0)
                            {
                                return(true);
                            }
                        }
                    }
                    if (todosCurrency.Count == 0)
                    {
                        break;
                    }
                }
            }
            return(false);
        }
Exemple #4
0
        private bool AdicionarMoeda(RPMoedaEmpilhavel item)
        {
            // Procura na mochila outros iguais
            var todasMoedas = Itens.FindAll(x => x.Classe == item.Classe);

            if (todasMoedas == null)
            {
                // Não achou? Adiciona o item com 1 de pilha
                item.PilhaAtual = 1;
                return(AdicionarNovoItem(item));
            }

            // Verifica cada moeda
            foreach (var baseItem in todasMoedas)
            {
                var moeda = baseItem as RPMoedaEmpilhavel;

                if ((moeda.PilhaAtual + 1) == moeda.PilhaMaxima)
                {
                    switch (moeda.Classe)
                    {
                    case RPClasse.FragmentoPergaminho:
                        Itens.Remove(moeda);
                        Espaco -= item.Espaco;
                        return(AdicionarMoeda(new MoedasEmpilhaveis().PergaminhoSabedoria()));
                    }
                    moeda.PilhaAtual++;
                    return(true);
                }
                else if (moeda.PilhaAtual < moeda.PilhaMaxima)
                {
                    moeda.PilhaAtual++;
                    return(true);
                }
            }
            return(AdicionarNovoItem(item));
        }