static void FixBloodlinePrerequisites(BlueprintArchetype crossblooded)//blodlinfukup
        {
            // Fix sorcerer bonus feats.
            //Log.Write("started sosfeatselection");
            var sorcererFeatSelection = library.Get <BlueprintFeatureSelection>("3a60f0c0442acfb419b0c03b584e1394");

            sorcererFeatSelection.AllFeatures.ForEach(FixBloodlinePrerequisite);
            //Log.Write("started bloodofdragonselection");
            // Fix blood of dragon selection: add draconic crossbloodlines.///////da48f9d7f697ae44ca891bfc50727988
            var bloodOfDragonsSelection = library.Get <BlueprintFeatureSelection>("da48f9d7f697ae44ca891bfc50727988");
            var NoBloodrager            = bloodOfDragonsSelection.AllFeatures.ToArray();
            //Log.Write("started looping bloodofdragonselection");
            var draconicBloodlines = new BlueprintFeature[10];
            //var otherBloodlines = new BlueprintFeature[NoBloodrager.Length-10];
            string bloodragerTester;
            int    x = 0;

            //int y = 0;
            foreach (var bloodlinethingy in NoBloodrager)
            {
                bloodragerTester = bloodlinethingy.GetName();
                if (x < 10)
                {
                    //draconicBloodlines.AddToArray<BlueprintFeature>(bloodlinethingy);
                    draconicBloodlines[x] = bloodlinethingy;
                    //Log.Write(bloodlinethingy.GetName());
                    //Log.Write("hekll");
                    x++;
                }
                else
                {
                    //otherBloodlines[y] = bloodlinethingy;
                    //y++;
                    //Log.Write(bloodlinethingy.GetName());
                    //bloodlinethingy.
                }

                //Log.Write("draconic=" + x.ToString() + " rager= " + y.ToString());
            }

            BlueprintProgression[] draconicCrossbloods = draconicBloodlines.Select(f => crossbloodForBloodline[f as BlueprintProgression]).ToArray();

            //bloodOfDragonsSelection.SetFeatures(draconicBloodlines.Concat(draconicCrossbloods));


            //bloodOfDragonsSelection.SetFeatures(draconicBloodlines.Concat(draconicCrossbloods));

            bloodOfDragonsSelection.AllFeatures = bloodOfDragonsSelection.AllFeatures.AddToArray(draconicCrossbloods);
            //bloodOfDragonsSelection.SetFeatures(draconicBloodlines.Concat(draconicCrossbloods));
            //NoBloodrager.SetFeatures(draconicBloodlines.Concat(draconicCrossbloods));

            //Log.Write("started draconic");

            foreach (var draconic in draconicCrossbloods)
            {
                // Ensure the crossblood ones can only be chosen if this is a crossblooded sorcerer.
                //Log.Write("draconic in draconicCrosbloods1");
                draconic.AddComponent(Helpers.Create <PrerequisiteArchetypeLevel>(p =>
                {
                    p.CharacterClass = sorcererClass;
                    p.Archetype      = crossblooded;
                    p.Level          = 1;
                }));
            }

            // Fix dragon disciple features.
            var dragonDiscipleProgression = library.Get <BlueprintProgression>("69fc2bad2eb331346a6c777423e0d0f7");

            foreach (var entry in dragonDiscipleProgression.LevelEntries)
            {
                foreach (var feat in entry.Features.OfType <BlueprintFeature>())
                {
                    FixDragonDisciple(feat, draconicBloodlines);
                }
            }
        }