//Compute price modifier based on category of entity public static double GetProductionPriceModifier(this IProductionDataAccess dataAccess, int targetDefinition) { if (!EntityDefault.TryGet(targetDefinition, out EntityDefault ed)) { Logger.Error("definition was not found: " + targetDefinition); return(1.0); } var modifier = 1.0; if (CategoryFlagsExtensions.IsAny(ed.CategoryFlags, lights)) { modifier = BotClassMods[0]; } else if (CategoryFlagsExtensions.IsAny(ed.CategoryFlags, assaults)) { modifier = BotClassMods[1]; } else if (CategoryFlagsExtensions.IsAny(ed.CategoryFlags, mechs)) { modifier = BotClassMods[2]; } else if (CategoryFlagsExtensions.IsAny(ed.CategoryFlags, heavies)) { modifier = BotClassMods[3]; } else { var techLevel = Math.Min(Math.Max(1, ed.Tier.level) - 1, TechLevelMods.Length - 1); modifier = TechLevelMods[techLevel]; } return(modifier); }
public static bool IsPrototypeDefinition(this IProductionDataAccess dataAccess, int definition) { var res = dataAccess.Prototypes.Any(t => t.Value == definition); Logger.Info("input is prototype: " + res); return(res); }
public static int GetResultingDefinitionFromCalibrationDefinition(this IProductionDataAccess dataAccess, int definition) { var target = (dataAccess.ResearchLevels.Values.Where(ir => ir.calibrationProgramDefinition == definition).Select(ir => ir.definition)).FirstOrDefault(); if (target == 0) { Logger.Error("no target definition was found for calibration program: " + EntityDefault.Get(definition).Name + " " + definition); } return(target); }
public ProductionProcessor(IProductionDataAccess productionDataAccess, IProductionInProgressRepository pipRepository, ProductionDescription.Factory productionDescFactory, IEntityServices entityServices, InsuranceHelper insuranceHelper, MissionProcessor missionProcessor) { _productionDataAccess = productionDataAccess; _pipRepository = pipRepository; _productionDescFactory = productionDescFactory; _entityServices = entityServices; _insuranceHelper = insuranceHelper; _missionProcessor = missionProcessor; }
public static void GetCalibrationDefault(this IProductionDataAccess dataAccess, int definition, out int materialEfficiency, out int timeEfficiency) { if (dataAccess.CalibrationDefaults.TryGetValue(definition, out CalibrationDefault calibrationDefault)) { materialEfficiency = (int)calibrationDefault.materialEfficiency; timeEfficiency = (int)calibrationDefault.timeEfficiency; } else { materialEfficiency = 50; timeEfficiency = 50; #if DEBUG Logger.Error("consistency error. no default was found for calibration program: " + definition); #endif } }
public static double GetProductionDuration(this IProductionDataAccess dataAccess, int targetDefinition) { if (!EntityDefault.TryGet(targetDefinition, out EntityDefault ed)) { Logger.Error("definition was not found: " + targetDefinition); return(1.0); } foreach (var cf in ed.CategoryFlags.GetCategoryFlagsTree()) { if (dataAccess.ProductionDurations.TryGetValue(cf, out double durationModifier)) { return(durationModifier); } } Logger.Error("consistency error. production duration modifier was not found for definition: " + targetDefinition + " " + ed.CategoryFlags); return(1.0); }
public static int GetPrototypePair(this IProductionDataAccess dataAccess, int definition) { return(!dataAccess.Prototypes.ContainsKey(definition) ? definition : dataAccess.Prototypes[definition]); }
public static void GetCalibrationDefault(this IProductionDataAccess dataAccess, EntityDefault ed, out int materialEfficiency, out int timeEfficiency) { dataAccess.GetCalibrationDefault(ed.Definition, out materialEfficiency, out timeEfficiency); }
public ResearchKit(IProductionDataAccess productionDataAccess) { _productionDataAccess = productionDataAccess; }
public CalibrationProgram(IProductionDataAccess productionDataAccess) { _productionDataAccess = productionDataAccess; }
public GetResearchLevels(IProductionDataAccess productionDataAccess) { _researchLevelInfos = productionDataAccess.ResearchLevels.Values.ToDictionary("r", r => r.ToDictionary()); }
public static ItemResearchLevel GetItemReserchLevelByCalibrationProgram(this IProductionDataAccess dataAccess, CalibrationProgram calibrationProgram) { return(dataAccess.ResearchLevels.Values.FirstOrDefault(i => i.calibrationProgramDefinition == calibrationProgram.Definition)); }
public static int GetOriginalDefinitionFromPrototype(this IProductionDataAccess dataAccess, int prototypeDefinition) { var x = dataAccess.Prototypes.FirstOrDefault(p => p.Value == prototypeDefinition).Key; return(x == 0 ? prototypeDefinition : x); }
public DynamicCalibrationProgram(IProductionDataAccess productionDataAccess) : base(productionDataAccess) { }
public ProductionDescription(IProductionDataAccess productionDataAccess, int definition) { _productionDataAccess = productionDataAccess; this.definition = definition; }
public ProductionComponentCollector(IProductionDataAccess productionDataAccess) { _productionDataAccess = productionDataAccess; }
public PriceCalculator(MarketHandler marketHandler, IProductionDataAccess productionDataAccess, IRobotTemplateRelations robotTemplateRelations) { _marketHandler = marketHandler; _productionDataAccess = productionDataAccess; _robotTemplateRelations = robotTemplateRelations; }
public static bool IsItemResearchable(this IProductionDataAccess dataAccess, int definition) { return(dataAccess.ResearchLevels.ContainsKey(definition)); }
public ProductionLine(IProductionDataAccess productionDataAccess, ItemHelper itemHelper) { _productionDataAccess = productionDataAccess; _itemHelper = itemHelper; }
public static int GetResearchLevel(this IProductionDataAccess dataAccess, int definition) { return(dataAccess.ResearchLevels.TryGetValue(definition, out ItemResearchLevel researchLevel) ? researchLevel.researchLevel : 0); }
public RandomCalibrationProgram(IProductionDataAccess productionDataAccess, IGangManager gangManager) : base(productionDataAccess) { _gangManager = gangManager; }
public RandomResearchKit(IProductionDataAccess productionDataAccess) : base(productionDataAccess) { }