public T2Blueprint(BlueprintID bpID, int matLevel, int prodLevel) { MatLevel = matLevel; ProdLevel = prodLevel; Product = CommonQueries.GetProductFromBlueprint(bpID); Details = CommonQueries.GetBlueprintDetails(bpID); var t1ID = CommonQueries.GetT1VersionOfT2(Product); var t1BPID = CommonQueries.GetBlueprintFromProduct(t1ID); //Console.WriteLine(new T1Blueprint(t1BPID, 0, 0).InventionMaterials); Materials = new List <BPMaterial>(); var rawMaterials = CommonQueries.GetMaterialsRaw(Product); var extraMaterials = CommonQueries.GetMaterialsExtra(bpID); var t1Materials = CommonQueries.GetMaterialsRaw(t1ID); var extraT1Materials = CommonQueries.GetMaterialsExtra(t1BPID); // TODO: currently this assumes there is always exactly 1 recyclable material which is the t1 item var rawMaterialsAfterRecycling = rawMaterials.Subtract(t1Materials); // adjust for ME var adjustedRawMaterials = rawMaterialsAfterRecycling.AdjustForMEWastage(matLevel, Details.wasteFactor); Materials = adjustedRawMaterials.Union(extraMaterials).ToList(); }
public T1Blueprint(BlueprintID bpID, int matlevel, int prodLevel) { MatLevel = matlevel; ProdLevel = prodLevel; Product = CommonQueries.GetProductFromBlueprint(bpID); Details = CommonQueries.GetBlueprintDetails(bpID); Materials = CommonQueries.GetMaterialsRaw(Product) .AdjustForMEWastage(matlevel, Details.wasteFactor) .Union(CommonQueries.GetMaterialsExtra(bpID)) .ToList(); var extraMats = CommonQueries.GetMaterialsExtra(bpID, ActivityIDs.Invention).ToList(); if (extraMats.Any()) { // data dump is terrible and gives data interfaces a damagePerJob of 100% :ccp: InventionMaterials = extraMats .Where(m => m.matID.GetGroupID() != GroupID.DataInterfaces) .ToList(); InventionInterface = extraMats .Single(m => m.matID.GetGroupID() == GroupID.DataInterfaces) .matID; } }