Esempio n. 1
0
 private void FixedUpdate()
 {
     if (_ProduceCounter.Completed)
     {
         int remaining = _Package.PutItem(Product).Remaining.FirstOrDefault().Count;
         Debug.Log(_Package.GetItemStr());
         if (remaining != 0)
         {
             _Dropper.Drop(new ItemGroup(Product.Id, remaining));
             Debug.Log("drop");
         }
         _ProduceCounter.Recount();
     }
 }
Esempio n. 2
0
        /// <summary>
        /// 应用合成规则
        /// </summary>
        /// <returns>无法添加进背包的物品(背包已满或是不可打包物品)</returns>
        public ItemGroup[] ApplyExpression(int expressionId)
        {
            var expression = GetExpression(expressionId);

            foreach (var costItem in expression.Input)
            {
                _Package.CostItem(costItem);
            }

            return((
                       from createdItem in expression.Output
                       let overflow = _Package.PutItem(createdItem).Remaining.FirstOrDefault().Count
                                      where overflow > 0
                                      select(createdItem.Id, overflow))
                   .Select(dummy => (ItemGroup)dummy).ToArray());
        }