Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
            }
        }