コード例 #1
0
ファイル: Models.cs プロジェクト: srakowski/LD42
 public void Progress(IEnumerable <Resource> resourceDeposit, SellOffPile sellOffPile)
 {
     _resources.AddRange(resourceDeposit);
     SellOffExcess <Resource.Iron>(sellOffPile, Sale.RequestedIron);
     SellOffExcess <Resource.Copper>(sellOffPile, Sale.RequestedCopper);
     SellOffExcess <Resource.Silver>(sellOffPile, Sale.RequestedSilver);
     SellOffExcess <Resource.Zinc>(sellOffPile, Sale.RequestedZinc);
 }
コード例 #2
0
ファイル: Models.cs プロジェクト: srakowski/LD42
        private void SellOffExcess <T>(SellOffPile sellOffPile, int needed) where T : Resource
        {
            var extra = _resources.OfType <T>().Count() - needed;

            if (extra > 0)
            {
                var extras = _resources.OfType <T>().Take(extra);
                foreach (var ex in extras)
                {
                    _resources.Remove(ex);
                    sellOffPile.AddToPile(ex);
                }
            }
        }
コード例 #3
0
ファイル: Models.cs プロジェクト: srakowski/LD42
        public void ReceiveResources(IEnumerable <Resource> resources, SellOffPile sellOffPile)
        {
            var resourceQueue = new Queue <Resource>(resources);

            while (resourceQueue.Any() && !IsFull)
            {
                unitsOfResources.Add(resourceQueue.Dequeue());
            }
            if (sellOffPile != null)
            {
                while (resourceQueue.Any())
                {
                    sellOffPile.AddToPile(resourceQueue.Dequeue());
                }
            }
        }
コード例 #4
0
ファイル: Models.cs プロジェクト: srakowski/LD42
 private GameBoard(
     IEnumerable <Mine> mines,
     IEnumerable <Location> locations,
     LocationsDeck locationDeck,
     IEnumerable <Corporation> corporations,
     CorporationsDeck corporationsDeck,
     SalesDeck salesDeck,
     IEnumerable <Route> routes)
 {
     Mines            = mines;
     Locations        = locations;
     LocationsDeck    = locationDeck;
     Corporations     = corporations;
     CorporationsDeck = corporationsDeck;
     SalesDeck        = salesDeck;
     Routes           = routes;
     SellOffPile      = new SellOffPile();
 }
コード例 #5
0
ファイル: Behaviors.cs プロジェクト: srakowski/LD42
 public SellOfPipBehavior(int pipNumber, SellOffPile sellOffPile)
 {
     this.pipNumber   = pipNumber;
     this.sellOffPile = sellOffPile;
 }