Exemple #1
0
 private void UseRequiredStock(IList <IProductionRequires> requiedItems)
 {
     foreach (var requiredItem in requiedItems)
     {
         TradableStockItems.First(item => item.TradeItem.GetType() == requiredItem.ItemRequired.GetType()).RemoveStock(requiredItem.QuantityRequired);
     }
 }
Exemple #2
0
 private bool CheckRequiredStockAvailable(IList <IProductionRequires> required)
 {
     foreach (var requiredItem in required)
     {
         if (TradableStockItems.Any(stockItem => stockItem.TradeItem.GetType() == requiredItem.ItemRequired.GetType() && stockItem.QuantityInStock < requiredItem.QuantityRequired))
         {
             return(false);
         }
     }
     return(true);
 }
Exemple #3
0
        public void Tick()
        {
            foreach (var item in Production)
            {
                if (!CheckRequiredStockAvailable(item.ProductionRequires) || !CheckStorageHasSpaceForNewStock(item))
                {
                    break;
                }

                TradableStockItems.First(stockItem => stockItem.TradeItem.GetType() == item.ItemProduced.GetType()).AddStock(item.UnitsProducedPerTick);
                UseRequiredStock(item.ProductionRequires);
            }
        }
Exemple #4
0
        private bool CheckStorageHasSpaceForNewStock(IProduction <ITradeItem> itemProduced)
        {
            var currentStock = TradableStockItems.First(item => item.TradeItem.GetType() == itemProduced.ItemProduced.GetType());

            return(ResourceStorage.Any(storage => storage.TradeItem.GetType() == itemProduced.ItemProduced.GetType() && (storage.StorageCapacity - currentStock.QuantityInStock) > itemProduced.UnitsProducedPerTick));
        }
Exemple #5
0
 public void AddStock(ITradeItem tradeItem, double quantity)
 {
     TradableStockItems.First(item => item.TradeItem.GetType() == tradeItem.GetType()).AddStock(quantity);
 }