Ejemplo n.º 1
0
        public Boolean TestItem(ItemRecord a_Item)
        {
            if (!TestTristate(Published, a_Item.IsPublished))
            {
                return(false);
            }

            if (!TestTristate(PlainMaterials, !a_Item.HasUnknownMaterials))
            {
                return(false);
            }

            if (!TestTristate(HasMarketGroup, (0 != a_Item.MarketGroupID)))
            {
                return(false);
            }

            if (!TestTristate(IsPricesOk, a_Item.IsPricesOk(PriceExpiryDays)))
            {
                return(false);
            }

            if ((AssetsFilter != null) && !AssetsFilter.ContainsKey(a_Item.TypeID))
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 2
0
        private void UpdateTotalsRow()
        {
            if (m_TotalsItem == null)
            {
                return;
            }

            m_TotalsItem.ItemData = CreateSpecialItem_Totals();
            m_TotalsItem.Quantity = 0;

            ItemRecord totalRecord = m_TotalsItem.ItemData;

            foreach (MainListItem listItem in m_ItemList)
            {
                if (listItem.TypeID == SpecialTypeID_Totals)
                {
                    continue;
                }

                ItemRecord currRecord = listItem.ItemData;

                lock (currRecord)
                {
                    m_TotalsItem.Quantity        += listItem.Quantity;
                    m_TotalsItem.ItemData.Volume += listItem.Quantity * currRecord.Volume;

                    bool isPriceExpired = !currRecord.IsPricesOk(m_Engine.m_Settings.PriceLoad.Items.ExpiryDays);
                    bool isZeroPrice    = (currRecord.Price == 0);

                    if (!isPriceExpired && !isZeroPrice)
                    {
                        totalRecord.Price += listItem.Quantity * currRecord.Price;
                    }

                    for (int i = 0; i < currRecord.MaterialAmount.Count(); i++)
                    {
                        double currAmount = m_Engine.GetPerfectRefiningQuota(currRecord, listItem.Quantity, (Materials)i);
                        totalRecord.MaterialAmount[i] += currAmount;
                    }
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets various prices and colors for an item
        /// </summary>
        /// <param name="a_Item">Item in question</param>
        /// <param name="a_Quantity">Quantity of the item</param>
        /// <param name="a_QuantityOK">true means that quantity is valid (ie assets mode + use quantities enabled)</param>
        /// <returns>Prices and color</returns>
        public ItemPrice GetItemPrices(ItemRecord a_Item, RefiningMutators a_Mutators, UInt32 a_Quantity)
        {
            ItemPrice result = new ItemPrice();

            result.RefinedCost = GetItemRefinedPrice(a_Item, a_Mutators, a_Quantity);
            result.MarketPrice = a_Quantity * a_Item.Price;

            bool isError = false;

            if (0 == a_Item.MarketGroupID)
            {
                result.MarketPrice = ItemPrice.NonMarket;
                isError            = true;
            }
            else if (0 == result.MarketPrice)
            {
                result.MarketPrice = ItemPrice.Unknown;
                isError            = true;
            }
            else if (!a_Item.IsPricesOk(m_Settings.PriceLoad.Items.ExpiryDays))
            {
                result.MarketPrice = ItemPrice.Outdated;
                isError            = true;
            }
            else
            {
                result.PriceDelta = result.RefinedCost - result.MarketPrice;
            }

            if (isError)
            {
                result.PriceDelta = ItemPrice.Empty;
            }

            return(result);
        }