Exemplo n.º 1
0
        public void EvaluateTradingDesires(IEnumerable <MagusTradingDesires> mageTradeDesires)
        {
            List <VisTradeOffer>   offers          = new List <VisTradeOffer>();
            List <BookTradeOffer>  bookTradeOffers = new List <BookTradeOffer>();
            List <VisForBookOffer> buyBookOffers   = new List <VisForBookOffer>();
            List <VisForBookOffer> sellBookOffers  = new List <VisForBookOffer>();

            foreach (MagusTradingDesires tradeDesires in mageTradeDesires)
            {
                if (tradeDesires.Mage == this)
                {
                    continue;
                }

                var bookTrades = _tradeDesires.GenerateBookTradeOffers(tradeDesires);
                bookTradeOffers.AddRange(bookTrades);

                var bookBuyOffers = _tradeDesires.GenerateBuyBookOffers(tradeDesires);
                if (bookBuyOffers != null)
                {
                    buyBookOffers.AddRange(bookBuyOffers);
                }

                var bookSellOffers = _tradeDesires.GenerateSellBookOffers(tradeDesires);
                if (bookSellOffers != null)
                {
                    sellBookOffers.AddRange(bookSellOffers);
                }

                var visOffersGenerated = _tradeDesires.GenerateVisOffers(tradeDesires);
                if (visOffersGenerated != null)
                {
                    offers.AddRange(visOffersGenerated);
                }
            }

            ProcessVisOffers(offers);
            ProcessBookOffers(bookTradeOffers, buyBookOffers, sellBookOffers);
            // figure out book for book
        }