static int CalcCost(Recipe recipe) { return ((int) (recipe.Materials.Sum(p => ItemCostCalculator.GetUnitPrice(p.Key) * p.Value) / RecipeYieldCalculator.GetYield(recipe))); }
static int CalcCost(Recipe recipe, Character character, out double yield) { yield = RecipeYieldCalculator.GetYield(recipe, character); return ((int) (recipe.Materials.Sum(p => ItemCostCalculator.GetUnitPrice(p.Key) * p.Value) / yield)); }
public void Recalculate() { UnitPriceMethod method; double craftYield = 0; if (Character != null) { UnitCost = ItemCostCalculator.GetUnitPrice(Item, Character, out method); CraftCost = Item.MadeFrom.Any() ? CraftCostCalculator.CostToCraft(Item, Character, out craftYield) : 0; } else { UnitCost = ItemCostCalculator.GetUnitPrice(Item, out method); CraftCost = Item.MadeFrom.Any() ? CraftCostCalculator.CostToCraft(Item, out craftYield) : 0; } CraftYield = craftYield; BestMethod = method; MarketPrice = MarketPriceCalculator.GetMarketPrice(Item); NetRevenue = MarketPriceCalculator.GetNetSaleRevenue(Item); Profit = NetRevenue - UnitCost; MarketCraftDifference = MarketPrice - CraftCost; Refreshed?.Invoke(this, new EventArgs()); }