public List <CostGridModel> Convert(RuleSet ruleset) { var costList = new List <CostGridModel>(); if (ruleset.ManufactureItems == null) { return(costList); } foreach (var item in ruleset.ManufactureItems) { var model = new CostGridModel(); model.DataModel = item; model.OriginalName = item.Name; model.Name = GetSimpleName(item.Name); model.Cost = item.Cost; model.Time = item.Time; costList.Add(model); } foreach (var model in costList) { var costAndTime = GetDependencyCostAndTime( model.DataModel.RequiredItems, costList, ruleset); UpdateModeCosts(ruleset, model, costAndTime); } return(costList); }
private static void UpdateModeCosts(RuleSet ruleset, CostGridModel model, CostAndTime costAndTime) { model.RequiresElerium = costAndTime.UseElerium; model.EleriumRequired = costAndTime.EleriumRequired; model.DependencyCost = costAndTime.Cost; model.DependencyTime = costAndTime.Time; model.TimeCost = model.Time * 34.72M; model.TotalCost = model.DependencyCost + model.Cost + model.TimeCost; model.SellPrice = GetSellPrice(ruleset, model.OriginalName); model.ProfitPerHour = (model.SellPrice - model.TotalCost.Value); var totalTime = (model.Time + model.DependencyTime); if (totalTime > 0) { model.ProfitPerHour /= totalTime; } model.ProfitWithoutDepdendencyPerHour = (model.SellPrice - model.TimeCost - model.Cost); if (totalTime > 0) { model.ProfitWithoutDepdendencyPerHour /= totalTime; } }